gpt4 book ai didi

log4j2 默认翻转策略不删除日志

转载 作者:行者123 更新时间:2023-12-02 17:18:56 25 4
gpt4 key购买 nike

我的 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 个文件....

知道是什么原因造成的吗?

最佳答案

请检查以下配置以删除旧文件:DefaultRolloverStrategy max="10"表示每天最多可以创建 10 个文件。您可以使用 IfAccumulatedFileCount exceeds="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 及更高版本

关于log4j2 默认翻转策略不删除日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44588333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com