【问题标题】:How to limit the number of files per day when using Logback SizeAndTimeBasedFNATP使用 Logback SizeAndTimeBasedFNATP 时如何限制每天的文件数
【发布时间】:2020-10-06 20:04:51
【问题描述】:

在使用 Logback SizeAndTimeBasedFNATP 触发策略时,如何限制每天的文件数量?例如,在任何一天,我都不想拥有超过 100MB 的日志。鉴于每个日志(在下面的示例中)为 20MB,我希望能够设置每天 5 个文件的最大限制。

FixedWindowRollingPolicy 提供了 maxIndex 属性,但 TimeBasedRollingPolicy 没有 maxIndex。在使用 TimeBasedRollingPolicy 时,是否有推荐的方法来应用 maxIndex?

<appender name="some.file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>logs/some_app_%d{yyyyMMdd}.log.%i</fileNamePattern>
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>20MB</maxFileSize>
    </timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
    <pattern>%level %date{yyyy-MM-dd HH:mm:ss:SSS} %msg%n</pattern>
</encoder>

【问题讨论】:

  • 您是否找到任何解决方案来限制每天的日志数量?

标签: logback


【解决方案1】:

目前这是不可能的。看看这个答案Logback, set max history files per day。 您不能同时滚动基于时间和大小的滚动/触发策略。

【讨论】:

    【解决方案2】:

    可以使用ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy 限制日志的总大小

    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>log/log.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
        <maxFileSize>100MB</maxFileSize>
        <maxHistory>60</maxHistory>
        <totalSizeCap>20GB</totalSizeCap>
    </rollingPolicy>
    

    From logback docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多