【发布时间】:2019-02-15 22:22:56
【问题描述】:
我将 Logback 与 TimeBasedRollingPolicy 一起使用,每小时滚动一次文件:
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${serverpath}/logs/history-debug/debug.%d{yyyy-MM-dd_HH}.log.zip</fileNamePattern>
<maxHistory>168</maxHistory> <!--7Days-->
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
在我的情况下,有时原始(尚未滚动)日志文件会变得非常大(几 GB)。我现在想在配置中添加一个SizeBasedTriggeringPolicy,以便在原始日志文件超过一定限制(例如 5GB)时额外滚动文件。
所以日志文件应该每小时滚动一次,除非文件变大,那么它应该更早滚动。
我试过这个:
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${serverpath}/logs/history-debug/debug.%d{yyyy-MM-dd_HH}.%i.log.zip</fileNamePattern>
<maxHistory>168</maxHistory> <!--7Days-->
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5GB</maxFileSize>
</triggeringPolicy>
但随后出现错误,因为 %i 与 TimeBasedRollingPolicy 不兼容。
我也尝试了SizeAndTimeBasedRollingPolicy,但它只是将翻转的文件分块成更小的部分,而不查看原始日志文件的大小。
【问题讨论】:
标签: logging logback rollingfileappender