有没有人碰巧知道log4j的DailyRollingFileAppender类是否能够在与源文件不同的目录中创建新日志?
我知道RollingFileAppender可以实现这一点,具体如下: log4j move rolling files to another directory/location
我想使用前一个appender的原因是因为它使翻转过程能够基于日期或时间,而不是最大文件大小。
log4j.rootLogger=INFO, EXAMPLE
log4j.appender.EXAMPLE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.EXAMPLE.DatePattern='.'yyyy-MM-dd
log4j.appender.EXAMPLE.File=/path/to/my/logs/example.log
log4j.appender.EXAMPLE.Append=true
log4j.appender.EXAMPLE.layout=org.apache.log4j.PatternLayout
log4j.appender.EXAMPLE.layout.ConversionPattern=%d{dd-MMM-yyyy HH:mm:ss,SSS} - %X{userId} - %X{sessionId} %-5p %c{1}:%L - %m%n
答案 0 :(得分:3)
有一种方法可以在不同的目录中创建滚动日志(虽然它有点软糊弱,但在目录名称和位置方面却非常有限)。
由于DatePattern
将模式附加到日志文件名的末尾,您可以执行以下操作:
log4j.appender.EXAMPLE.DatePattern='_old/example.log.'yyyy-MM-dd
这将导致完成的日志在目录中结束,如: -
/path/to/my/logs/example.log_old
答案 1 :(得分:0)
查找以下代码,您可以非常简单地将其存档,请检查并还原 Reference
#Worked with 2.17 version
log4j.rootLogger=INFO, app
log4j.appender.app=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.app.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.app.rollingPolicy.ActiveFileName=worker.log
log4j.appender.app.rollingPolicy.FileNamePattern=worker-.%d{yyyyMMdd}.log.gz
log4j.appender.app.layout=org.apache.log4j.PatternLayout
log4j.appender.app.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n