当前的spring应用程序将slf4j
,log4j
和slf4j-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日志记录),它是否会解决问题?我只是希望停止制作庞大的日志文件。
答案 0 :(得分:2)
这是翻转逻辑的正常行为,您可以在log4j类RollingFileAppender
中看到它。
翻转逻辑尝试将当前日志文件重命名为包含时间戳的名称,如果它无法管理,例如由于另一个应用程序打开该文件,则翻转逻辑将无提示失败而不会执行任何更改(不记录任何警告或错误)。
这意味着将继续在同一个文件中进行日志记录,直到下次成功执行翻转逻辑为止。