【发布时间】:2014-04-11 08:51:12
【问题描述】:
我的 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
【问题讨论】:
-
所以你想要在没有任何事情发生的日子里清空日志文件?
-
不幸的是..这是要求。实际上,我们将昨天的日志发送到另一个系统,它期望 app.log.dd-MM-yyyy 中的 logFileName 并且他们每天都想要它(如果某个特定日期丢失了文件,那么它会引发错误)。
-
我不确定 Log4j 可以做到这一点。你用什么来发送文件?如果文件丢失,该系统是否无法创建文件?
-
基本上是客户要求查看日志。所以他们开发了一些代码(我们真的不知道),我们正在通过电子邮件向他们发送文件。
标签: java logging log4j rollingfileappender