为什么即使在相同的时间间隔内,启动应用程序时也会创建一个新的日志文件?

时间:2019-07-11 08:55:18

标签: java spring-boot log4j2

我们在Spring Boot项目中使用log4j2记录消息。定义了基于时间的策略,以便每天都可以滚动日志。请参见下面的我的log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="LOG_PATTERN">
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
        </Property>
    </Properties>

    <Appenders>
        <Console name="RootConsoleAppender" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>

        <!-- Message logging -->
        <RollingFile name="MessageFileAppender" fileName="logs/messages.log"
                     filePattern="logs/messages-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout>
                <Pattern>${LOG_PATTERN}</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="com.myapp.process.MessageLoggingProcessor" level="info">
            <AppenderRef ref="MessageFileAppender"/>
        </Logger>

        <Root level="info">
            <AppenderRef ref="RootConsoleAppender"/>
        </Root>
    </Loggers>
</Configuration>

请考虑我先记录一些消息,然后在同一天重新启动应用程序并记录一些其他消息。我的期望是,所有消息都将附加到同一messages.log文件中,因为过渡每天发生,并且发生在同一天。但是,实际上,在重新启动后,将创建文件messages-2019-07-10-1.log并将新消息记录到messages.log中。在第二次重新启动后,我们也以messages-2019-07-10-2.log等结束

这是log4j2的预期行为吗?如果是这样,我如何配置它以实现我的预期行为?

0 个答案:

没有答案