我需要删除每天滚动的旧日志文件。限制我尝试过的文件数量:
<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>
答案 0 :(得分:1)
您需要升级您的Log4j版本。删除功能在2.5中引入。最新版本现在是2.7。我建议使用最新的。
另请查看文档以获取maxDepth属性。您应该指定1或更多。零表示目录本身,而不是该目录中的文件。