You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

logback.xml滚动策略配置:如何实现每8小时滚动日志文件

实现Logback每8小时滚动日志的方案

针对你需要将日志从每小时滚动改为每8小时滚动的需求,有一个直接可行的方案:结合TimeBasedRollingPolicy与CronTriggeringPolicy来精准控制滚动时机。

具体配置示例

替换你原有的rollingPolicy配置为以下内容:

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <!-- 文件名格式,会以滚动触发时的小时(00/08/16)命名日志文件 -->
    <fileNamePattern>${DEV_HOME}/archived/server.%d{yyyy-MM-dd_HH}.log</fileNamePattern>
    
    <!-- 使用Cron触发策略,指定每8小时触发一次滚动 -->
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.CronTriggeringPolicy">
        <!-- Cron表达式:每天00:00、08:00、16:00触发滚动 -->
        <cron>0 0 */8 * * ?</cron>
        <!-- 可选配置:即使当前日志文件为空,到时间也执行滚动 -->
        <checkHistory>true</checkHistory>
    </timeBasedFileNamingAndTriggeringPolicy>
    
    <!-- 可选配置:设置日志文件保留天数,按需调整 -->
    <maxHistory>30</maxHistory>
</rollingPolicy>

方案说明

  1. 滚动时机控制:通过Cron表达式0 0 */8 * * ?,精准指定每天的00:00、08:00、16:00三个时间点触发日志滚动,确保每个日志文件包含连续8小时的日志内容,24小时内恰好生成3份日志文件。
  2. 文件名对应:fileNamePattern中的%d{yyyy-MM-dd_HH}会以滚动触发时的小时命名文件,比如08:00触发滚动生成的文件是server.xxxx-xx-xx_08.log,包含00:00到08:00的日志。
  3. 版本要求:CronTriggeringPolicy需要Logback Classic版本1.2.0及以上,请确保你的依赖版本满足要求。

内容的提问来源于stack exchange,提问作者Gaurav Dogra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 23:05:23