slf4j logback 日志滚动创建 .tmp 文件

slf4j logback log rolling creating .tmp file

我有一个问题,有时日志滚动创建一个 .tmp 文件并且不创建原始日志文件。有趣的是,我注意到在午夜前 1 分钟开始滚动日志时会发生这种情况。

1.7.15

我的logback.xml配置如下

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${COMPONENT_LOGDIR}/abc.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${COMPONENT_LOGDIR}/abc.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>

            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>750MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>10</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${logPatternMdc}</pattern>
        </encoder>
    </appender>

使用不同的滚动策略似乎解决了这个问题。请参考下面的工作配置:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>${COMPONENT_LOGDIR}/otm-rest.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${COMPONENT_LOGDIR}/otm-rest.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxFileSize>750MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>15GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>${logPatternMdc}</pattern>
    </encoder>
</appender>