Log4j2:如何指定要保留的最大副本数?

时间:2013-03-08 17:31:34

标签: java logging configuration log4j log4j2

在我的项目中,我需要设置一个Log4j2配置来生成每天都在滚动的日志文件。另一个要求是只保留2天的日志文件。所以我必须限制要保留在系统中的文件总数。以下是我从研究中得到的结果,但它仅限制每天的文件数量,而不是文件总数。我想知道是否有一种方便的方法来限制保留的最大日志副本数量?

<RollingFile name="DailyRollingFile" fileName="logs/audit.log"
append="false" immediateFlush="true" filePattern="logs/audit-%d{yyyy-MM-dd}-%i.log">
    <PatternLayout>
    <pattern>%d %p [%t] - %m%n</pattern>
</PatternLayout>
<Policies>
    <TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy max="2" />
</RollingFile>

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

与此同时,问题跟踪器中有一项功能请求:https://issues.apache.org/jira/browse/LOG4J2-435

答案 1 :(得分:1)

我建议您将此作为功能请求指向Apache Logging邮件列表(https://logging.apache.org/log4j/2.x/mail-lists.html)或Log4j-2.0问题跟踪器(https://issues.apache.org/jira/browse/LOG4J2)吗?

答案 2 :(得分:0)

最大文件数也限于

中指定的数量
<DefaultRolloverStrategy max="2" />

在翻转时,仅保留指定数量的文件。旧文件将被翻转。即任何时间点的日志文件总数将是为DefaultRolloverStrategy字段指定的最大值。

使用Log4j 2.5以后可以配置自定义删除操作。请按照此处的详细信息进行操作。 https://logging.apache.org/log4j/2.x/manual/appenders.html#CustomDeleteOnRollover