我的 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>
Run Code Online (Sandbox Code Playgroud)
所以当它超过 2 天时应该删除最旧的文件吗?
我的日志文件存储在项目的基本路径中名为 logs..的文件夹中。
但是我只是做了一个测试运行,它在我停止之前得到了 5 个文件......
知道是什么原因造成的吗?
请检查以下删除旧文件的配置: DefaultRolloverStrategy max="10" 表示每天最多可以创建 10 个文件。您可以使用 IfAccumulatedFileCount 超过="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>
Run Code Online (Sandbox Code Playgroud)
也许是在错误的路径中搜索要删除的文件,或者您的日志文件不是 2 天前的。您使用的是哪个版本的 log4j?它适用于 Log4j-2.5 及更高版本
归档时间: |
|
查看次数: |
3181 次 |
最近记录: |