首页 > 解决方案 > 在 log4j 中使用 RollingFileAppender 时覆盖到相同的日志文件

问题描述

我在使用 log4j 时遇到问题。当日志超过文件大小的限制时,它会重写现有日志而不是创建新日志。达到文件大小后,我该怎么做才能创建新的日志文件。

log4j.appender.Default=org.apache.log4j.RollingFileAppender
log4j.appender.Default.Threshold=INFO
log4j.appender.Default.File=debug.log
log4j.appender.Default.FilePattern=debug.%i.log
log4j.appender.Default.layout=org.apache.log4j.PatternLayout
log4j.appender.Default.layout.ConversionPattern=[%d,%c{1}]%m%n
log4j.appender.Default.MaxFileSize=100KB
log4j.appender.Default.MaxBackupIndex=10
log4j.appender.Default.Append=true

标签: javalog4j

解决方案


通过使用 SizeBasedTriggeringPolicy 并定义滚动策略,您可以压缩文件并在日志文件达到最大大小时轮换日志文件。下面是一个小片段供您参考,

log4j.appender.Default.layout=org.apache.log4j.PatternLayout log4j.appender.Default=org.apache.log4j.rolling.RollingFileAppender log4j.appender.Default.rollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
log4j.appender .Default.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.Default.rollingPolicy.ActiveFileName =${log.dir}/${log.file}.log log4j.appender.Default.rollingPolicy.FileNamePattern=$ {log.dir}/${log.file}-.%i.log.gz log4j.appender.Default.triggeringPolicy.MaxFileSize=10000 log4j.appender.Default.rollingPolicy.maxIndex=10


推荐阅读