【问题标题】:Rolling policy in logback.xml - roll file after x number of hourslogback.xml 中的滚动策略
【发布时间】:2023-01-15 21:17:04
【问题描述】:
       <rollingPolicy 
         class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover hourly -->
        <fileNamePattern>${DEV_HOME}/archived/server.%d{yyyy-MM-dd_HH}.log
        </fileNamePattern>
        </rollingPolicy>

我现在使用此方法进行每小时翻转,但需要在 8 小时翻转时更改此方法{即,我们有 24 小时,然后将创建 3 个文件,每个文件具有 8 小时的日志值}。

有什么解决办法吗?

【问题讨论】:

    标签: spring-boot logback


    【解决方案1】:

    默认情况下,logback 不为​​此类功能提供滚动策略实现。您可以为此创建自己的滚动策略触发器,方法是扩展 DefaultTimeBasedFileNamingAndTriggeringPolicy 并覆盖 computeNextCheck 方法,以便在它从文件名模式推断出的滚动时间段的指定倍数之后执行下一次滚动。

    自定义滚动触发策略类:

    import ch.qos.logback.core.joran.spi.NoAutoStart;
    import ch.qos.logback.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy;
    
    @NoAutoStart // @NoAutoStart prevents null pointer exception by stopping Joran from launching the start method before initialization
    public class ArbitraryTimeRollingTriggerPolicy<E> extends DefaultTimeBasedFileNamingAndTriggeringPolicy<E> {
        // Setters and getters are required to set times inside logback configuration xml file
        private int times;
        
        public int getTimes() {
            return times;
        }
    
        public void setTimes(int times) {
            this.times = times;
        }
    
        @Override
        protected void computeNextCheck() {
            nextCheck = rc.getEndOfNextNthPeriod(dateInCurrentPeriod, times).getTime();
        }
    }
    

    在 logback 配置中的 appender 中使用的滚动策略:

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${DEV_HOME}/archived/server.%d{yyyy-MM-dd_HH}.log</fileNamePattern>
        <!-- Custom Rolling Trigger Policy -->
        <timeBasedFileNamingAndTriggeringPolicy class="<YOUR-PACKAGE>.ArbitraryTimeRollingTriggerPolicy">
            <!-- Number of hours, after which you want to rotate the file -->
            <times>8</times>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 2023-03-27
      • 2018-09-18
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 2019-08-31
      相关资源
      最近更新 更多