Logback:文件增长超过maxFileSize时的异常

时间:2016-05-16 16:52:27

标签: logback slf4j

我在logback.xml中有以下滚动策略        问题是,如果文件大小超过10 MB,则会抛出异常。 看起来它正在尝试创建一个新文件,但由于同一个文件已存在于同一个日期,因此它无法执行此操作并引发异常。
例如,我们已经有一个文件pvExport.2016-05-15.log,如果pvExport.log超过10 MB,它将尝试创建与pvExport.2016-05-15.log同名的文件,并且因此会抛出异常,但不确定

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${EXPORT_LOG_HOME}/pvExport.%d{yyyy-MM-dd}.log
                        </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

1 个答案:

答案 0 :(得分:2)

在这种情况下,您的fileNamePattern实际上无效。来自docs

  

注意&#34;%i&#34;转换令牌除了&#34;%d&#34;。 %i和%d令牌都是强制性的。每当当前日志文件在当前时间段结束之前达到maxFileSize时,它将以增加的索引存档,从0开始。

%i转化令牌添加到您的模式中应解决此问题:

<fileNamePattern>${EXPORT_LOG_HOME}/pvExport.%d{yyyy-MM-dd}.%i.log</fileNamePattern>