我有log4j2,默认翻转策略设置如下 -
<RollingFile name="RollingFile" fileName="cc" filePattern="logs/${baseFileName}-%d{yyyy-MM-dd}.log.gz">
<PatternLayout>
<pattern>%d{dd/MMM/yyyy HH:mm:ss,SSS}- %c{1}: %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="logs/">
<IfFileName glob="logs/${baseFileName}-*.log" />
<IfLastModified age="2d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
所以它应该在超过2天的时候删除最旧的文件吗?
我的日志文件存储在名为logs ..
的文件夹中的项目基本路径中然而,我只是进行了一次测试运行,在我停止之前它得到了5个文件....
任何可能导致这种情况的想法?
答案 0 :(得分:2)
请检查以下配置以删除旧文件: DefaultRolloverStrategy max =“10”表示每天最多可以创建10个文件。 您可以使用IfAccumulatedFileCount beyond =“2”来控制将始终存在的文件数。 将指定文件的年龄,如果文件总数大于2(如IfAccumulatedFileCount中所指定),则将删除早于当天2天的文件。
<DefaultRolloverStrategy max="100">
<Delete basePath="${baseDir}" maxDepth="2">
<IfFileName glob="*/app-*.log">
<IfLastModified age="2d">
<IfAny>
<IfAccumulatedFileCount exceeds="2" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
可能是在不正确的路径中搜索要删除的文件,或者您的日志文件不是2天。 你正在使用哪个版本的log4j?它适用于Log4j-2.5及以上
答案 1 :(得分:0)
最后缺少星号。请检查 -
<IfFileName glob="logs/${baseFileName}-*.log*" />