logback:SizeAndTimeBasedRollingPolicy 不删除 4 位数字“%i”的文件

Arn*_*was 5 java logback

我们在我们的产品中使用 SizeAndTimeBasedRollingPolicy/SizeAndTimeBasedFNATP(logback 1.1.3)。这是 logback 配置文件的片段:

<appender name="SERVER_FILE"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${MY_LOGS}/myabc.log</file>
    <append>true</append>
    <!-- 
        Roll log file on both time (per day) and size (250mb). Gzip on roll.
    -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- location and name of rolled log files -->
        <fileNamePattern>${MY_LOGS}/myabc-%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
        <!-- keep 30 days worth of history -->
        <maxHistory>30</maxHistory>
        <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!-- whenever the file size reaches 250MB, roll it -->
            <maxFileSize>250MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSS} [%thread] %-5level %logger{24} [%C{1}.%M]</pattern>
    </encoder>
</appender>
Run Code Online (Sandbox Code Playgroud)

生成的日志文件具有以下名称:myabc-2016-11-21.0.gz、myabc-2016-11-21.1.gz、myabc-2016-11-21.2.gz 等。

问题是如果日志文件的扩展名 (%i) 超过 3 位,则在 30 天 (maxHistory) 后不会被删除。例如,myabc-2016-11-21.0.gz 在 30 天后被删除,但 myabc-2016-11-21。1000 .gz 不会被删除。

是否有任何其他附加程序/配置我需要添加到 logback 配置文件中以确保超过 3 位扩展名的文件也被删除,或者它是 logback 中的错误?

[我尝试过 logback 1.1.7,但这没有帮助]

Arn*_*was 2

这是 logback 中的一个错误。这是jira,这是建议的修复(PR)。