当前的 spring 应用程序采用 slf4j
、log4j
和 slf4j-log4j12
作为日志记录实用程序。
问题是,
(1) 每次使用外部工具(写字板或ultraedit)打开日志文件时,文件都会停止滚动。这是非常烦人的,因为文件可能会增长到 10 GB 左右。
(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 日志记录),是否可以解决问题?我只是希望停止创建巨大的日志文件。
最佳答案
这是翻转逻辑的正常行为,您可以在 log4j 类 RollingFileAppender
中看到它。
翻转逻辑尝试将当前日志文件重命名为包含时间戳的名称,如果由于文件被另一个应用程序打开等原因而未能成功,则翻转逻辑将默默失败并且不会执行任何更改(不记录警告或错误)。
这意味着日志记录将继续在同一文件中进行,直到下一次成功执行翻转逻辑。
关于java - 日志记录停止滚动到新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837206/