Spring Boot logback 不删除旧日志文件

Springboot logback not deleting old logfiles

我在 SpringBoot 中使用 logback,但无法删除旧日志文件。

我在我的 logback-spring.xml 文件中定义了以下附加程序:

    <appender name="app" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOGS}/app.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily and when the file reaches 10 MegaBytes -->
            <fileNamePattern>${LOGS}/archived/app-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- keep 10 days worth of history -->
            <maxHistory>10</maxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
    </appender>

即使我设置了“maxHistory”和“cleanHistoryOnStart”,也不会删除超过 10 天的日志文件。无论是 RollOver 还是 StartUp。

其他一切似乎都正常。日志文件根据定义的规则滚动并重命名。

我是不是做错了什么?

maxHistory 与天数无关,与文件数有关。参见 http://logback.qos.ch/manual/appenders.html

好的,我发现问题出在哪里了,看来只是我的误会。

我有一个应用程序 运行 在我实际将标签添加到我的 logback 文件之前已经生成了大约 2 个月的日志。

我的假设是,当我启动它时,logback 也会自动删除所有那些旧日志。然而,情况似乎并非如此。