使用Log4j2删除旧文件时​​出错

时间:2016-10-31 09:42:28

标签: log4j2

我需要删除每天滚动的旧日志文件。限制我尝试过的文件数量:

    <RollingFile 
        name="FileAppender" 
        fileName="${baseDir}/mylog.log" 
        filePattern="${baseDir}/mylog %d{yyyy-MM-dd}.log.zip">
         <PatternLayout pattern="%d{ISO8601} [%p] %c{1} - %m%n"/>
         <Policies>              
            <TimeBasedTriggeringPolicy interval="1" />            
        </Policies>
        <DefaultRolloverStrategy max="5">        
    </RollingFile>

但是日志不会被删除。

现在我正在哄骗

    <DefaultRolloverStrategy>
        <Delete basePath="${baseDir}" maxDepth="0">                 
            <IfLastModified age="5d" />
        </Delete>
    </DefaultRolloverStrategy>

但我收到错误:

错误DefaultRolloverStrategy包含无效的元素或属性“删除”

我的log4j2.xml文件有问题吗?

我使用maven:

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.0.1</version> 
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0.1</version>
    </dependency>

1 个答案:

答案 0 :(得分:1)

您需要升级您的Log4j版本。删除功能在2.5中引入。最新版本现在是2.7。我建议使用最新的。

另请查看文档以获取maxDepth属性。您应该指定1或更多。零表示目录本身,而不是该目录中的文件。