一张图解释maxHistory、fileNamePattern、totalSizeCap、maxFileSize之间的关系

2023-12-14 03:59:49

文中结合配置和坐标轴的关系进行案例讲解,文中知识针对每个案例情况进行解释,当然也存在其他案例,对比理解即可。

配置案例

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>log_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>5</maxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <totalSizeCap>50MB</totalSizeCap>
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>

配置映射到坐标轴解释

因为将上述配置结合坐标轴进行解释,横轴对应的是时间,纵轴对应的是文件大小:
log_%d{yyyy-MM-dd}.%i.log: 定义了横轴的刻度大小是天
maxHistory:定义了保留近5天的数据
totalSizeCap:定义了有效文件个数totalSizeCap/maxFileSize,其余的删除
maxFileSize:定一个耽搁文件的大小,纵轴的刻度大小是10MB

坐标轴图示

绿色方块:时间刻度
黄色方块:有效日志文件
红色方块:超出时间或者文件总大小被删除的文件
如果2023-12-15是最新日期,因此对应到坐标轴:

仅超出时间限制

案例1
在这里插入图片描述

  1. 2023-12-10中的log_2023-12-10.6.log被删除是因为超出时间限制。

超出文件个数totalSizeCap/maxFileSize

案例1
在这里插入图片描述

  1. 2023-12-11当天log_2023-12-11.0.log被删除,是因为要生成新的文件但已存在的文件个数超过限制,需要删除最旧的文件。

案例2
在这里插入图片描述

  1. 2023-12-15当天log_2023-12-15.0.log被删除,是因为要生成新的文件但已存在的文件个数超过限制,需要删除最旧的文件。

即超出文件个数,也超出时间

案例1
在这里插入图片描述

  1. 2023-12-10当天所有文件被删除,原因1 超过时间限制,原因2超过文件数量限制
  2. 2023-12-11当天 log_2023-12-11.0.log文件被删除,是因为在有效的时间范围内,超出了文件数量限制,删除最旧的文件。

总结

只有满足时间范围又满足文件个数限制才能存在,否则优先删除最旧的文件。

文章来源:https://blog.csdn.net/sunboylife/article/details/134911836
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。