【问题标题】:logback TimeBasedRollingPolicy maxHistorylogback TimeBasedRollingPolicy maxHistory
【发布时间】: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

标签: logging logback slf4j


【解决方案1】:

我需要查看代码,但在我的脑海中,arvhive 删除被设计为在连续功能期间工作。在开始时可能已经尝试过往回看,但我需要检查一下。

问题已在https://jira.qos.ch/browse/LOGBACK-162 中修复,即很久以前。

【讨论】:

    猜你喜欢
    • 2019-07-27
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2018-02-26
    • 1970-01-01
    相关资源
    最近更新 更多