java - 每天滚动更新日志文件,无论是否记录任何消息

标签 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

有时不会报告错误,并且在接下来的连续几天内不会滚动文件,直到报告下一个错误。 由于附加程序设置为错误级别,它不会滚动日志文件,直到报告一些错误消息

我的问题是我们是否可以开发某种机制,以便无论附加程序是否有要记录的错误消息,文件都会在每个午夜滚动?

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

提前致谢

注意:- 由于大小限制,我无法将记录器级别设置为信息/调试

最佳答案

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

关于java - 每天滚动更新日志文件,无论是否记录任何消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007799/

相关文章:

java - Jasper 报告和报告参数

python - 摆脱 Django IOErrors

java - 与库一起使用的不同记录器

java - Tumblr API for java (Jumblr),如何使用标记并获取 nsfw 结果

java - 从 Jtable 中选择一行并将该行数据获取到 Java 中的另一个表单窗口

用于在多个嵌套循环中验证数据的 Java 8 替代方案

c# - Xamarin表单未处理的异常记录

delphi - 在 Delphi 上断点的 Eval 表达式上混合字符串和数字

java - 以相反的顺序逐行读取文件

java - 在 oc4j 10.1.3 中使用 log4j