2017-08-03 26 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選項