在我的项目中,我需要设置一个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>
感谢您的帮助!
答案 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