无论是否有任何消息被记录,每天都会翻转日志文件

时间:2014-04-11 08:51:13

标签: java logging log4j rollingfileappender

我的log4j.properties

中有以下配置
log4j.rootLogger=ERROR,FA
log4j.appender.FA=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.FA.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.FA.RollingPolicy.FileNamePattern=.\\logs\\app.log-%d{dd-MM-yyyy}
log4j.appender.FA.File=.\\logs\\app.log
log4j.appender.FA.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.FA.layout.ConversionPattern=%d %p %t %c: %m%n
log4j.appender.FA.Append=true

有几天没有报告错误,并且文件没有在连续几天滚动,直到报告下一个错误。 当appender设置为ERROR级别时,它将不会滚动日志文件,直到报告了一些错误消息

我的问题是我们是否可以开发一些机制,以便每隔午夜就会滚动文件,而不管appender是否记录了某些错误消息?

我有一个java应用程序,我们正在使用log4j api进行日志记录,因此可以理解Java或Log4j中的解决方案。

提前致谢

注意: - 由于大小限制

,我无法将记录器级别设置为Info / Debug

1 个答案:

答案 0 :(得分:1)

在Log4j 2.5中使用新的CronTriggeringPolicy,我找到了一个没有虚线的解决方案,我发布了here。不幸的是,它仍然需要一些自定义插件代码,因为DefaultRolloverStrategy的行为只是删除空文件。