如何在Logback中以编程方式滚动日志文件

时间:2012-01-03 10:26:48

标签: java logging logback

根据此链接:http://logback.qos.ch/manual/appenders.html(在RollingFileAppender中)

在我看来,Logback只提供了一种如何滚动日志文件的有限方法。 基于时间,它可以仅在特定时间间隔内滚动日志文件,例如每小时一次,一次 每分钟。它没有提到如何以编程方式滚动日志文件,这就是我 欲望。我需要一些方法来允许用户决定何时滚动日志文件和日志文件 稍后将由用户使用。

我使用谷歌进行了一些研究,但一无所获。 您能否告诉我如何以编程方式滚动日志文件

提前感谢。

编辑:至少我需要一些方法来指定一个间隔,比如像十分钟一样滚动一个日志文件。

2 个答案:

答案 0 :(得分:2)

我建议您自己实施TriggeringPolicy。因此,制作您自己的实现(它将检查用户设置的全局变量)并使用您的类配置logback。

不确定您的“编辑:”。听起来像标准TimeBasedRollingPolicy配置。

答案 1 :(得分:0)

(应用开始时间)logback.groovy可以例如基于这个想法的任意复杂groovy代码翻转:

appender( 'FILE', RollingFileAppender ) {
  ...
  if ( myConditionTrue )
    component.rollover()  // directly rollover on app start / logback.groovy load
}

如果有人想根据某些检查条件定期进行翻转,可以根据scan(interval)进行翻转:

appender( ... ){
  ...
  if ( myConditionTrue )
    component.rollover()
}
scan(30)  // reparse logback.groovy every 30 s if the setup had been changed

提到了一些不错的其他事情here

  • SiftingAppender/MDC使用情况基于discriminator:idMDC.put('id','<some-id>')log.info(ClassicConstants.FINALIZE_SESSION_MARKER)
  • 直接在正在运行的应用中调用它{a 1 log.getAppender('FILE').rollover()