配置log4j org.apache.log4j.rolling.RollingFileAppender,以便在日志数量超过设定索引量后删除压缩日志

Bre*_*een 4 java logging log4j

我使用的是org.apache.log4j.rolling.RollingFileAppenderapache-log4j-extras包压缩日志,一旦他们不再活动日志.这是一个示例appender:

<appender name="TRACELOG" class="org.apache.log4j.rolling.RollingFileAppender">
    <param name="file" value="logFileName.log" />

    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="FileNamePattern" value="logFileName.%d.log.gz" />
    </rollingPolicy>

    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
    </layout>

    <filter class="org.apache.log4j.varia.LevelMatchFilter">
        <param name="LevelToMatch" value="trace" />
        <param name="AcceptOnMatch" value="true" />
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter" />
</appender>
Run Code Online (Sandbox Code Playgroud)

我想做的是添加类似的东西<param name="MaxBackupIndex" value="14" />,它基本上只保留14天的压缩日志,但当我尝试使用它时,我得到以下警告:

log4j:WARN No such property [maxBackupIndex] in org.apache.log4j.rolling.RollingFileAppender.
Run Code Online (Sandbox Code Playgroud)

小智 5

在额外滚动文件appender(不是标准)中,无法直接在appender中指定滚动策略,因为它在滚动策略字段中指定.

问题是你使用的是不支持maxBackupIndex 的TimeBasedRollingPolicy,只有FixedWindowRollingPolicy支持maxBackupIndex


sta*_*tan 4

您可以编写自定义文件附加程序,它扩展了 RollingFileAppender。这是一个示例: http: //www.javaworld.com/community/node/6148