2013-06-02 21 views
1

如何配置logback更改自動滾動的時間?我無法在手冊中找到它...這裏是我的logback.xml代碼片段:更改在logback中滾動的一天中的時間

<appender name="data" class="ch.qos.logback.core.FileAppender"> 
    <file>mylog.log</file> 

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>mylog.%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%msg%n</pattern> 
    </encoder> 
</appender> 
+0

我嘗試編寫自己的'timeBasedFileNamingAndTriggeringPolicy',但是太多的內容都是私有的,我不得不從頭開始編寫整個東西。我認爲硬編碼翻轉是在'ch.qos.logback.core.rolling.helper.RollingCalendar'中完成的,無法設置它們。 – durron597

回答

-1

試着這樣做,希望它能爲你工作。

<appender name="FILE" 
class="ch.qos.logback.core.rolling.RollingFileAppender"> 
<File>${LOGDIR}/filename.log</File> 
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
    <!-- rollover daily --> 
    <FileNamePattern>${LOGDIR}/file.%d{yyyy-MM-dd}.%i.log.gz 
    </FileNamePattern> 
    <!-- keep 30 days' worth of history --> 
    <MaxHistory>30</MaxHistory> 
    <!-- or whenever the file size reaches 10MB --> 
    <timeBasedFileNamingAndTriggeringPolicy 
     class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
     <maxFileSize>10MB</maxFileSize> 
    </timeBasedFileNamingAndTriggeringPolicy> 
</rollingPolicy> 
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
    <Pattern>%date [%thread] %-5level %logger{36} - %msg%n 
    </Pattern> 
</encoder> 

上面的代碼將壓縮您在一天的基礎上或如果日誌文件的大小超過10MB的文件。

注:我添加「%i」的filePattern,它會遍歷你的文件名作爲文件1,文件2等

+0

我不想基於文件大小滾動,我想根據一天中的時間滾動。 – durron597