Log4j Rollingpolicy和MaxbackupIndex

Log4j Rollingpolicy和MaxbackupIndex,log4j,rollingfileappender,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 log4

我每分钟都在使用下面的代码滚动日志,它工作得非常好

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
然而,我只是想知道,当我使用TimebasedRollingPolicy时,MaxbackupIndex是否有任何替代方案,因为这并没有按照预期工作


我使用log41.2.17和apachelog4j附加组件

不幸的是,使用log4j的标准API甚至附加组件都不可能做到这一点

但是,您可以使用类别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.patternalyout
log4j.appender.AllFlows.layout.ConversionPattern=%d%-5p%x-%m%n

注释

  • 请参阅中该类的代码

  • 可以在log4j2中使用DefaultRolloverStrategy

    <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>
    
    
    
    好的。你能告诉我哪个log4jjar版本有DailyMaxRollingFileAppender吗?1.2.17?有使用自定义日志追加器的解决方案-