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

Java Log4j2滚动文件覆盖现有日志,java,logging,log4j2,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

我有以下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个日志文件。相反,只有一个日志文件每天被覆盖。我做错了什么

对于基于时间的触发策略,您应该设置interval=“1”和modulate=“true”

另请参见



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

我刚刚尝试过,现在日志将附加到现有文件中。抱歉,间隔应为1而不是24。
<PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss} %level %c.%m %ex{full} %n"/>
        </RollingFile>