4

一旦它们不再是活动日志,我将使用包中的压缩org.apache.log4j.rolling.RollingFileAppender日志。apache-log4j-extras这是一个示例附加程序:

<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>

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

log4j:WARN No such property [maxBackupIndex] in org.apache.log4j.rolling.RollingFileAppender.
4

2 回答 2

5

在额外的滚动文件附加程序(不是标准)中,无法直接在附加程序中指定滚动策略,因为它是在滚动策略字段中指定的。

问题是您使用的TimeBasedRollingPolicy不支持 maxBackupIndex,maxBackupIndex 仅在FixedWindowRollingPolicy中受支持

于 2013-09-20T15:24:56.963 回答
3

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

于 2013-09-20T15:25:49.420 回答