log4j到log4j2自定义RollingPolicy

时间:2015-04-06 09:20:04

标签: java apache logging log4j log4j2

我们有一个自定义滚动策略,在log4j中声明如下:

  

log4j.appender.testing.rollingPolicy = com.custom.appender.TimeBasedRollingPolicy   log4j.appender.testing.rollingPolicy.timeToRolloverInSeconds = 60   log4j.appender.testing.rollingPolicy.FileNamePattern = / TMP / cdr.log

如何在log4j2.xml中声明?

1 个答案:

答案 0 :(得分:1)

Log4j2有built-in time based rollover policy可以做你想要的。以下配置导致每分钟翻转:

<Appenders>
  <RollingFile name="RollingFile" fileName="logs/app.log"
               filePattern="logs/old/app-%d{yyyyMMdd-HHmm}-log.gz">
    <PatternLayout>
      <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
    </PatternLayout>
    <Policies>
      <TimeBasedTriggeringPolicy />
    </Policies>
  </RollingFile>

如果要创建自定义翻转策略,则需要创建一个实现TriggeringPolicy的log4j2插件。一个很好的起点是查看内置TimeBasedTriggeringPolicy的源代码。有关Log4j自定义插件的一般信息是here