試着這樣做,希望它能爲你工作。
<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等
我嘗試編寫自己的'timeBasedFileNamingAndTriggeringPolicy',但是太多的內容都是私有的,我不得不從頭開始編寫整個東西。我認爲硬編碼翻轉是在'ch.qos.logback.core.rolling.helper.RollingCalendar'中完成的,無法設置它們。 – durron597