log4j日志内容正在被替换

时间:2013-07-26 08:51:23

标签: java logging log4j

现在我正在为我的应用程序使用log4j-1.2.9.jar,但不幸的是,当每个00:00滚动日志文件时,我的日志内容正在被替换..

这是log4j属性:

log4j.logger.my.com.myapps=ALL,cy
log4j.appender.cy=org.apache.log4j.DailyRollingFileAppender
log4j.appender.cy.File=D:/CY/logs/cs.log
log4j.appender.cy.Append=true
log4j.appender.cy.layout=org.apache.log4j.PatternLayout
log4j.appender.cy.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %t %c{3} :: %m%n

昨天我的应用程序流程是在晚上8点左右开始的,然后到00:00它将滚动到一个新的日志文件并将之前的日志文件重命名为cs.log-2013-07-25。

但是现在问题出现了,我从8 PM ++到晚上11:59的日志内容已经消失了。它被覆盖了。日志内容在cs.log-2013-07-25中的12:00 AM - 12:40 AM。

然后在上午12:40之后的其他最新新日志内容将写入cs.log中的新日志。

有什么想法?或者我的配置错误..

2 个答案:

答案 0 :(得分:0)

尝试使用RollingFileAppender而不是DailyRollingFileAppender。 不要忘记添加属性 log4j.appender.cy.DatePattern = '' YYYY-MM-DD

答案 1 :(得分:0)

RollingFileAppender和DailyRollingFileAppender之间的基本区别在于,第一个基于最大日志文件大小工作,后一个基于日期和时间频率旋转。

在log4j.xml中添加这些新属性以支持RollingFIleAppender

  <param name="datePattern" value="'_'dd-yyyy-MM'.log'" />
  <param name="maxBackupIndex" value="4" />
  <param name="append" value="true" />
  <param name="MaxFileSize" value="10KB" />

我建议通过这些链接。

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/RollingFileAppender.html

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DailyRollingFileAppender.html

由于