问题
my goal is whenever file mylog.log is rolled to mylog.log.1 this rolled file is also moved to another directory, so in the original directory there is always only mylog.log. Is this possible using RollingFileAppender? Or another appender from default log4j library?
回答1:
I think you mean the RollingFileAppender from Log4J
if you use version >= 1.2.16 and the log4j-extras you can use this
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
The important part is log4j.appender.base.rollingPolicy.FileNamePattern=/tmp/test/logger-%i.log.gz
But you have to make sure that the folder (in this example /tmp/test exists
来源:https://stackoverflow.com/questions/22866704/log4j-move-rolling-files-to-another-directory-location