我们在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的预期行为吗?如果是这样,我如何配置它以实现我的预期行为?