问题描述
我想在日志文件中添加自动存档(删除),但是我努力寻找一个我理解并可以添加到当前配置的xml示例。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Appenders>
<Console name="Console" target="SYstem_OUT">
<PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
</Console>
<RollingFile name="RollingFile" fileName="./logs/AutoLab.log"
filePattern="./logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="50"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="DEBUG">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
以上是我当前的配置。从我阅读的内容中,我必须注意路径和目录名称,以便为操作系统使用正确的正斜杠字符。不确定我的安装程序将如何处理该问题。
戴夫
解决方法
您当前的配置表明您希望文件每月或在文件大小为100MB时翻转一次。您希望每月最多保留50个文件。
有关示例,请参见How to delete old logs with log4j2
,<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
</Console>
<RollingFile name="RollingFile" fileName="./logs/AutoLab.log" filePattern="./logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{DEFAULT} - %msg%n"/>
<CronTriggeringPolicy schedule="0 0 0 * * ?"/>
<DefaultRolloverStrategy>
<Delete basePath="${baseDir}" maxDepth="2">
<IfFileName glob="*/app-*.log.gz" />
<IfLastModified age="14d" />
</Delete>
</DefaultRolloverStrategy>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="50 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="DEBUG">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
添加了添加部分,以删除14天以上的文件。