在logback中的totalSizeCap似乎没有按预期工作

时间:2016-12-01 07:47:02

标签: java logback slf4j

我提到了下面提到的logback文件。 我想删除任何超过2天的日志,或者日志大小超过500KB。

超过2天的日志会按预期被删除。但是,超过 500KB的日志不会被删除。我也尝试使用ch.qos.logback.core.rolling.TimeBasedRollingPolicy,但行为是一样的。

<property name="DEV_HOME" value="/home/kishore/test/logs" />

<appender name="INFO_LOG"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- <file>/home/kishore/test/logs/info.log</file> -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>
                 ${DEV_HOME}/info-%d{yyyy-MM-dd}.log
            </fileNamePattern>
            <totalSizeCap>500KB</totalSizeCap>
            <maxHistory>2</maxHistory>
        </rollingPolicy>
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            </Pattern>
        </encoder>
    </appender>

我还尝试指定<maxFileSize>100KB</maxFileSize><fileNamePattern>${DEV_HOME}/info-%d{yyyy-MM-dd}.%i.log,因此日志将被拆分为多个文件,每个文件100KB。 它按预期分割,但在所有日志的总大小超过500 KB后,这些部分.0,.1等都不会被删除。

logback版本:1.1.3

我错过了任何配置吗?

1 个答案:

答案 0 :(得分:1)

v1.1.7中添加了

<totalSizeCap>。您需要升级。