Log4j Rollingpolicy和MaxbackupIndex

时间:2015-02-20 01:37:43

标签: log4j rollingfileappender

我使用以下代码每分钟翻转日志,并且效果很好。

log4j.appender.AllFlows=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.AllFlows.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.AllFlows.rollingPolicy.File=E:/Logs/AllFlows.log 
log4j.appender.AllFlows.rollingPolicy.FileNamePattern=E:/Logs/AllFlows.log.%d{yyyy-MM-dd-HH-mm}
log4j.appender.AllFlows.MaxBackupIndex=10
log4j.appender.AllFlows.layout=org.apache.log4j.PatternLayout
log4j.appender.AllFlows.layout.ConversionPattern=%d %-5p %x - %m%n

但是我只是想知道,它们是否是MaxbackupIndex的替代品,因为当我使用TimebasedRollingPolicy时,这不能正常工作?

使用log41.2.17和apache log4j extras

2 个答案:

答案 0 :(得分:5)

不幸的是,这不可能使用log4j的标准API,甚至使用Extras。

但是,您可以使用班级org.apache.log4j.DailyMaxRollingFileAppender 1 ,例如:

log4j.appender.AllFlows=org.apache.log4j.DailyMaxRollingFileAppender
log4j.appender.AllFlows.File=E:/Logs/AllFlows.log 
log4j.appender.AllFlows.MaxBackupIndex=10
log4j.appender.AllFlows.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.AllFlows.layout=org.apache.log4j.PatternLayout  
log4j.appender.AllFlows.layout.ConversionPattern=%d %-5p %x - %m%n

备注

  1. 请参阅Custom DailyRollingFileAppender with MaxBackupIndex中的此类代码。

答案 1 :(得分:0)

可以在Log4j2中使用DefaultRolloverStrategy o

<RollingFile name="LogFile" fileName="/logs/application.log" immediateFlush="false" append="false"
                         filePattern="//logs/abc-%d{MM-dd-yyyy}-%i.log.gz">
    <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} %m%n"/>
    <Policies>
        <TimeBasedTriggeringPolicy/> <!-- Above pattern will allow the files to be rolled over at midnight -->
    </Policies>
    <DefaultRolloverStrategy max="5"/>
</RollingFile>