log4j 将滚动文件移动到另一个目录/位置

sma*_*jlo 5 java log4j rollingfileappender

我的目标是每当文件mylog.log滚动到mylog.log.1这个滚动文件时也会移动到另一个目录,所以在原始目录中总是只有mylog.log. 这可以使用RollingFileAppender吗?还是来自默认log4j库的另一个附加程序?

drk*_*bar 5

我想你的意思是RollingFileAppender来自 Log4J

如果您使用版本 >= 1.2.16 和 log4j-extras,您可以使用它

log4j.rootCategory=INFO, base
log4j.appender.base=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.base.File=/tmp/logger.log
log4j.appender.base.rollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
log4j.appender.base.rollingPolicy.maxIndex=5
log4j.appender.base.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.base.triggeringPolicy.maxFileSize=100
log4j.appender.base.rollingPolicy.ActiveFileName=/tmp/logger-%i.log
log4j.appender.base.rollingPolicy.FileNamePattern=/tmp/test/logger-%i.log.gz
log4j.appender.base.layout = org.apache.log4j.PatternLayout
log4j.appender.base.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
Run Code Online (Sandbox Code Playgroud)

重要的部分是 log4j.appender.base.rollingPolicy.FileNamePattern=/tmp/test/logger-%i.log.gz

但是你必须确保文件夹(在这个例子中/tmp/test存在