Log4j2 滚动文件覆盖现有日志
Log4j2 rolling file overwrites existing log
我有以下 Log4j2 配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="error" name="D3Hooks" packages="">
<Appenders>
<RollingFile append="true" name="RollingFile" fileName="D:\temp\logs\hooks.log" filePattern="hooks.log.%d{dd-MM-yyyy}.log">
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy max="30"/>
<PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss} %level %c.%m %ex{full} %n"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
我对这个配置的期望是每天创建一个新的日志文件并保留 30 个日志文件。取而代之的是,只有一个日志文件每天都会被覆盖。我究竟做错了什么?
对于 TimeBasedTriggeringPolicy,您应该设置 interval="1" 和 modulate="true".
另见 Time based triggering policy in log4j2
<PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss} %level %c.%m %ex{full} %n"/>
</RollingFile>
当pattern布局为pattern="%d{yyyy-MM-dd}时,日志文件每天创建1个文件,间隔设置为1。因为间隔取决于日志文件名格式. 如果文件名类似于 HH:mm:ss
它将每秒创建一个文件。
我有以下 Log4j2 配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="error" name="D3Hooks" packages="">
<Appenders>
<RollingFile append="true" name="RollingFile" fileName="D:\temp\logs\hooks.log" filePattern="hooks.log.%d{dd-MM-yyyy}.log">
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy max="30"/>
<PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss} %level %c.%m %ex{full} %n"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
我对这个配置的期望是每天创建一个新的日志文件并保留 30 个日志文件。取而代之的是,只有一个日志文件每天都会被覆盖。我究竟做错了什么?
对于 TimeBasedTriggeringPolicy,您应该设置 interval="1" 和 modulate="true".
另见 Time based triggering policy in log4j2
<PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss} %level %c.%m %ex{full} %n"/>
</RollingFile>
当pattern布局为pattern="%d{yyyy-MM-dd}时,日志文件每天创建1个文件,间隔设置为1。因为间隔取决于日志文件名格式. 如果文件名类似于 HH:mm:ss
它将每秒创建一个文件。