我们有一个在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
中声明呢?
最佳答案
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。