我使用log4j2来记录我的程序。在我的xml配置文件中,我有这个appender:
<RollingFile name="General" fileName="log/logs/giornale.log" filePattern="log/logs/log-%d{yyyyMMdd}.log">
<PatternLayout>
<Pattern>%d{HH:mm:ss,SSS} [%t] %-5level %logger{-1} - %msg%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
我需要的是一种配置方式,以便自动删除超过n天的所有文件
我已经找到了一些问题,例如this,但是他们没有帮助,因为他们没有通过xml配置说明如何做到这一点。
为了缩短它,我想在哪里指出像&#34; MaxBackupIndex&#34;在上面的片段?或者我应该使用哪个其他参数(我可以把它放在哪里)?
答案 0 :(得分:5)
在&#39; RollingFile&#39;下添加以下标记标签。删除&#39;政策&#39;标签。你可能不需要它。
<DefaultRolloverStrategy>
<Delete basePath="log/logs" maxDepth="2">
<IfLastModified age="60d" />
</Delete>
</DefaultRolloverStrategy>
使用此配置,将自动删除超过60天的日志。
有关更多配置信息,请参阅log4j2 docs。
答案 1 :(得分:2)
您可以将DefaultRolloverStrategy添加到xml中作为 -
<RollingFile name="General" fileName="log/logs/giornale.log" filePattern="log/logs/log-%d{yyyyMMdd}.log">
<PatternLayout>
<Pattern>%d{HH:mm:ss,SSS} [%t] %-5level %logger{-1} - %msg%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy max="<specify maximum archive count>"/>
</RollingFile>
同样,您可以使用 -
将基于时间和大小的滚动组合用于日志<Policies>
<TimeBasedTriggeringPolicy interval="6" modulate="true"/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
..一个使用RollingFileAppender同时使用的示例配置 基于时间和大小的触发策略,最多可创建7个档案 在同一天(1-7)存储在基于的目录中 当前年份和月份,并将使用gzip压缩每个存档 当小时可被6整除时,每6个小时会滚动一次