• Logback设置保留日志文件个数


    Logback日志文件占用存储空间太多,设置保留文件个数,清理之前的文件。

    主要由如下三个参数配合使用

    maxHistory ,可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件,,例如设置为30的话,则30天之后,旧的日志就会被删除

    totalSizeCap,可选节点,用来指定日志文件的上限大小,例如设置为3GB的话,那么到了这个值,就会删除旧的日志,此参数是appender级别的,即使你的文件保存在了不同的日期文件夹下,还是会删除,最多保留此设置的大小

    cleanHistoryOnStart 在工程启动时清除日志文件

    比如如下appender

    fileNamePattern表示日志文件名规则。

    MaxFileSize为100MB表示单个日志文件最大100MB。

    totalSizeCap表示可保留日志文件的总大小为1GB,每个文件100M,那么也就是最多保留10个文件。

    maxHistory表示最多保留10天的日志文件,与totalSizeCap的配置规则一起生效,日志文件满足任意一个条件都会被清除。

    cleanHistoryOnStart表示在启动工程时根据配置的规则清理日志。

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logBase}/${appName}-server.log</file>
        <!--SizeAndTimeBasedRollingPolicy策略继承了TimeBasedRollingPolicy策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--每天生成一个文件 %i表示序号 从0开始-->
            <fileNamePattern>${logBase}/${appName}-server-%d{yyyy-MM-dd}.log.%i</fileNamePattern>
            <!--每个文件的大小限制-->
            <MaxFileSize>100MB</MaxFileSize>
            <!--最多保留10天的文件,10天之前的将被清除-->
            <MaxHistory>10</MaxHistory>
            <!--该滚动策略日志的总大小,超过的日志会被清除-->
            <totalSizeCap>1GB</totalSizeCap>
            <!--启动时清理日志文件  此项置灰清理超过保留天数的  也会清理超过总大小的-->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - [%X{TRACE_ID}] %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    注意事项

    logback的旧版本有bug,可能导致日志清理策略不生效,具体有如下几种:

    1.maxHistory不生效,最低修复该bug的版本为1.1.7。

    2.totalSizeCap不生效,最低修复该bug的版本为1.1.8。

    3.totalSizeCap不能超过2G缺陷(int型,2g达到了int边界),最低修复该bug的版本为1.2.0。

    <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version>1.2.3</version>
    </dependency>
  • 相关阅读:
    4.4 Iterator(迭代器)
    4.6 Memento(备忘录)
    4.1 Chain of Responsibility(职责链)
    4.5 Mediator(中介者)
    4.7 Observer(观察者)
    4.8 State(状态)
    4.11 Visitor(访问者)
    4.2 Command(命令)
    3.7 Proxy(代理)
    4.10 Template Method(模板方法)
  • 原文地址:https://www.cnblogs.com/ZTPX/p/14090313.html
Copyright © 2020-2023  润新知