【发布时间】:2021-10-04 18:00:03
【问题描述】:
我有以下 logback.xml 配置。我正在使用 logback 版本 1.2.3 和 slf4j 版本 1.7.30
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.file.path}/logFile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- hourly rollover -->
<fileNamePattern>${log.file.path}/logFile_%d{yyyy.MM.dd_HH}.log.gz</fileNamePattern>
<!-- keep only one archive file-->
<maxHistory>1</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
...
</appender>
根据上面的配置,我希望任何时候'log.file.path'目录中只有两个文件。当前日志文件(logFile.log)和一个归档文件。
当应用程序连续记录时,它按预期工作,我在日志目录中只看到两个文件。
但是,如果应用程序在中间两个小时内没有记录任何内容,然后再次开始记录,则除了现有的存档文件之外,还会创建新的存档文件。这会导致存在多个存档文件。
在 logback 文档 http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy 上,它说“maxHistory 属性控制要保留的存档文件的最大数量”。但就我而言,它保留了多个存档文件。
感谢任何帮助为什么会发生这种情况。
此外,即使我将 'cleanHistoryOnStart' 设置为 true,当应用重新启动时,额外的存档历史文件也不会被删除。
【问题讨论】:
-
能否提供 logback 的内部状态信息?
-
我应该提供来自 logback 内部状态消息的任何特定消息吗?在 cmets 中要发布很多行。
-
我已经发送了。
-
你使用的是哪个版本的 logback?
-
logback 版本 1.2.3