时间基础滚动策略除非有新日志,否则不会滚动
这是我的配置:
<appender name="myAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<file>mylogs.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>mylogs-%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} [%thread] - %M:%L - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
根据此处找到的日志文档(http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy),文件将根据我的文件名模式每分钟滚动更新一次。%d{yyyy-MM-dd_HH-mm}
我观察了它是如何工作的,这是我的发现:
- 它不会在很长一分钟内创建日志文件。
- 它仅在新日志到达时创建前一分钟的日志文件。(例如,我有一个晚上11:53的日志,现在是晚上11:55,当它到达晚上11:54时,它不会立即为晚上11:53创建新的日志文件,但是当一个新日志稍后出现时,比如在晚上11:56,它现在创建晚上11:53的文件。
我是否错过了什么,我以为它会每分钟创建一个日志文件?