Java log4j2定期清理日志文件
我使用log4j2来记录我的程序。在我的xml配置文件中,我有以下附录:Java log4j2定期清理日志文件,java,log4j2,rollingfileappender,Java,Log4j2,Rollingfileappender,我使用log4j2来记录我的程序。在我的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&
<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>
%d{HH:mm:ss,SSS}[%t]-5级别%logger{-1}-%msg%n
我需要的是一种配置它的方法,以便它能够自动删除所有超过n天的文件。我已经发现了一些问题,如,但它们没有帮助,因为它们没有说明如何通过xml配置来实现
简而言之,在上面的代码片段中,我到底应该在哪里指示像“MaxBackupIndex”这样的参数?或者我应该使用哪个其他参数(我可以将其放在哪里)?在“RollingFile”标记下添加以下标记。删除“策略”标记。你可能不需要它
<DefaultRolloverStrategy>
<Delete basePath="log/logs" maxDepth="2">
<IfLastModified age="60d" />
</Delete>
</DefaultRolloverStrategy>
使用此配置,将自动删除超过60天的日志
有关更多配置信息,请参阅。您可以将添加到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>
%d{HH:mm:ss,SSS}[%t]-5级别%logger{-1}-%msg%n
此外,您还可以对日志使用基于时间和大小的滚动组合,使用-
<Policies>
<TimeBasedTriggeringPolicy interval="6" modulate="true"/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
…使用RollingFileAppender和
基于时间和大小的触发策略,将创建多达7个存档
在同一天(1-7),根据
当前年份和月份,并将使用gzip和
当小时可被6整除时,将每6小时滚动一次