Log4j2滚动文件将覆盖现有日志

时间:2018-10-12 05:39:18

标签: java logging log4j2

我具有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个日志文件。相反,发生的是每天只有一个日志文件被覆盖。我究竟做错了什么?

2 个答案:

答案 0 :(得分:1)

对于TimeBasedTriggeringPolicy,您应该设置interval =“ 1”并调节=“ true”。

另请参阅Time based triggering policy in log4j2

答案 1 :(得分:0)

<PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss} %level %c.%m %ex{full} %n"/>
        </RollingFile>

当使用pattern =“%d {yyyy-MM-dd}进行模式布局时,日志文件每天将创建1个文件,其间隔设置等于1,因为该间隔取决于日志文件名格式。文件名类似HH:mm:ss,它将每秒创建一个文件。