【发布时间】:2019-02-01 01:26:34
【问题描述】:
我正在尝试修改我的log4j2.xml 文件并进行一些修改,但未能成功。这是我当前的版本:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%msg%n" />
</Console>
<RollingFile name="RollingFile" fileName="logs/mylog.log" filePattern="logs/mylog-%d{MM-dd-yyyy}-%i.log" append="false">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="1 MB"/>
</Policies>
<DefaultRolloverStrategy max="2"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
我不想每天保存 2 个文件。我一直只需要2个备份文件,否则我的日志会每天增加!我尝试从文件名中删除日期模式,但出现错误:filePattern="logs/mylog-%i.log" 不起作用。
【问题讨论】:
-
您可以尝试使用
RollingFileappender 的delete action 删除旧文件。关于immediateFlush,它是一个布尔参数,所以只需将其设置为false- 你尝试了什么? -
好的,谢谢。为什么要生成文件然后删除?!那么文件名中应该有日期吗?
filePattern="logs/mylog-%i.log"有什么问题?! -
我建议删除操作,因为它允许您限制文件的总数和/或文件的年龄,因此您可以保持时间触发策略,同时对文件的年龄和/或数量。