2013-04-29 115 views
3

在我當前的項目中,我想創建日誌文件明智的日期,即日誌文件應該位於
文件夾的名稱爲date。 還應該在該特定文件夾中進行歸檔。logback創建名稱爲當前日期的文件夾內的日誌文件

我正在使用的當前appender看起來像這樣(它根據大小歸檔日誌文件)。

<appender name="AUDITFILE" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${PROJECT_HOME}\\projectname\\audits\\myproject.log</file> 
    <append>true</append> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${PROJECT_HOME}\\projectname\\audits\\myproject_%d{yyyy-MM-dd}.%i.zip 
     </fileNamePattern> 
     <maxHistory>10</maxHistory> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10KB</maxFileSize> 

     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%date %msg%n 
     </pattern> 
    </encoder> 
</appender> 

回答

6

至於fileNamePattern文檔中提到的,你可以指定多個%d令牌,從而把日期的存檔文件名的文件夾名稱:

<fileNamePattern>${PROJECT_HOME}\\projectname\\audits\\%d{yyyy-MM, aux}\\myproject_%d{yyyy-MM-dd}.%i.zip</fileNamePattern> 

請注意,只有一個%d令牌可以是主要的,所有其他標記必須通過傳遞'aux'參數標記爲輔助標記。

但是,如果你也想將其放在非存檔文件名的文件名,那麼你有兩個選擇:

  1. 使用<timestamp />元素設置您在路徑中使用一個變量。但是這個時間戳只會在啓動時被設置一次,所以對於批處理運行而言不是很好,但對於服務而言是不錯的。

  2. 執行像上述(1),但包裹<appender/><timestamp />SiftingAppender,這將使該時間戳進行重新評估,如果使用的logback> = 1.0.12的版本。不確定你想如何配置SiftingAppender。但希望這會讓你走上正軌。

+0

感謝您的回覆。對我真的很有幫助。 – 2013-05-06 09:55:35

相關問題