记录停止滚动到新文件

时间:2014-02-17 19:03:04

标签: java spring java-ee logging log4j

当前的spring应用程序将slf4jlog4jslf4j-log4j12作为日志记录实用程序。

问题是,

(1)每次通过外部工具(wordpad或ultraedit)打开日志文件时,文件都会停止翻转。它非常烦人,因为文件可能会增长到10千兆字节。

(2)MaxFileSize设置为10Mb,但每次日志文件滚动到20Mb。

这是配置

log4j.rootLogger=DEBUG, ROL
log4j.appender.ROL=org.apache.log4j.RollingFileAppender
log4j.appender.ROL.Encoding=Unicode
log4j.appender.ROL.File=D:\\IamdWatchingYou.log
log4j.appender.ROL.MaxFileSize=10000KB
log4j.appender.ROL.MaxBackupIndex=10
log4j.appender.ROL.layout=org.apache.log4j.PatternLayout
log4j.appender.ROL.layout.ConversionPattern=%d -- %p -- %c -- %m%n

这个问题一般发生在所有主要的应用服务器上(Tomcat,websphere,有时甚至是Jboss)。

问题是,根本原因(兼容性或配置)是什么。如果选择其他日志记录实现(Logback或JDK日志记录),它是否会解决问题?我只是希望停止制作庞大的日志文件。

1 个答案:

答案 0 :(得分:2)

这是翻转逻辑的正常行为,您可以在log4j类RollingFileAppender中看到它。

翻转逻辑尝试将当前日志文件重命名为包含时间戳的名称,如果它无法管理,例如由于另一个应用程序打开该文件,则翻转逻辑将无提示失败而不会执行任何更改(不记录任何警告或错误)。

这意味着将继续在同一个文件中进行日志记录,直到下次成功执行翻转逻辑为止。