2017-08-03 90 views
0

我正在使用以下日志配置。当文件名中包含时间戳时文件不会翻转。这是因为时间戳中使用timeReference吗?如果我从文件名中删除时间戳,则文件将在达到10KB文件大小时滚动。带有时间戳记的文件名中未回滚的logback文件

有没有什么办法可以在文件名中加入时间戳,同时让翻滚工作?

<timestamp key="startTime" datePattern="yyyyMMdd_HHmmss" timeReference="contextBirth"> 
<property name="logFileName" value="xyz_${startTime}"> 
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${logFileName}.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${logFileName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10KB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%date %level %logger{35} %msg%n%rEx</pattern> 
    </encoder> 
</appender> 

回答

0

我解决了这个问题。有2个相同文件名的appender。所以重命名失败了。

以下介绍https://logback.qos.ch/codes.html网站帮助我。

File/FileNamePattern选项具有与前面定义的 appender给定的相同的值“...”。

如果先前定义一个FileAppender/RollingFileAppender进行具有相同的 File选项作为当前附加器,那么这两个附加目的地是 碰撞作为FileAppender实例不能共享相同输出 目标。为防止数据丢失,当前的appender将不会启动。 确保每个appender具有唯一的File选项。

通过类推,相同的限制适用于RollingFileAppender的FileNamePattern选项 。确保每个RollingFileAppender都有一个 独特的FileNamePattern选项

相关问题