2016-05-16 123 views
2

我在logback.xml中有下面的滚动策略。
问题是,如果文件大小增长超过10 MB,则抛出异常。 看起来它试图创建一个新文件,但由于同一个文件已经存在于相同的日期,它不能这样做,并抛出异常。
例如,我们已经有一个文件pvExport.2016-05-15.log,并且如果pvExport.log增长超过10 MB,它会尝试创建与pvExport.2016-05-15.log具有相同名称的文件,因此会抛出异常,但不知道Logback:当文件增长超出maxFileSize时出现异常

<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> 

回答

2

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

请注意除“%d”之外的“%i”转换标记。 %i和%d代币都是强制性的。每一个当前日志文件在当前时间段结束前达到maxFileSize为时间,它将增加索引归档,从0开始。

添加%i转换令牌到你的模式应该解决这个问题:

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

那工作,谢谢 – Ahmad

相关问题