log4j - 滚动文件附加程序不根据最大文件大小滚动

log4j - Rolling File Appender not rolling based on Max File size

下面是我用来使用 log4j 生成日志文件然后根据大小滚动它的代码。正在生成文件,但文件不会根据最大文件大小滚动。我在一个 post 中听说我们必须使用 apache-log4j-extras 而我正在使用 apache-log4j-extras-1.2.17。我尝试在达到 50KB 后翻滚,但它没有翻滚。有人可以告诉我哪里出了问题吗?

我正在使用 log4j-1.2.17 和 apache-log4j-extras-1.2.17 版本的 jar。

log4j.appender.Flows=org.apache.log4j.RollingFileAppender
log4j.appender.Flows.File=E:/Logs/Flows.log
log4j.appender.Flows.MaxFileSize=50KB
log4j.appender.Flows.MaxBackupIndex=2
log4j.appender.Flows.layout=org.apache.log4j.PatternLayout
log4j.appender.Flows.layout.ConversionPattern=%d %-5p - %c %x %m%n

如果您正在使用 Apache Extras™ for Apache log4j™, you may want to use org.apache.log4j.rolling.RollingFileAppender:

log4j.appender.Flows=org.apache.log4j.rolling.RollingFileAppender  
log4j.appender.Flows.rollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy  
log4j.appender.Flows.rollingPolicy.maxIndex=2  
log4j.appender.Flows.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy  
log4j.appender.Flows.triggeringPolicy.MaxFileSize=51200  
log4j.appender.Flows.rollingPolicy.FileNamePattern=E:/Logs/Flows-%i.log  
log4j.appender.Flows.rollingPolicy.ActiveFileName=E:/Logs/Flows.log
log4j.appender.Flows.layout=org.apache.log4j.PatternLayout  
log4j.appender.Flows.layout.ConversionPattern=%d %-5p - %c %x %m%n  

问题似乎是由 class 加载程序的多个级别中的 log4j*.jar 引起的。 例如。一次由 Tomcat 提供,第二次由网络应用程序直接提供。在 Tomcat 安装中从 WAR 中删除 log4j 解决了我们的问题。

这样做,我们可以避免使用 log4j extras。