SpringBoot3 配置Logback日志滚动文件

简介

本文介绍了在SpringBoot3中配置Logback日志滚动文件的方法,因为SpringBoot3内置的logback版本是1.4.14,之前使用SpringBoot2.1.5的logback配置发现有些东西不能生效了

环境

SpringBoot v3.3.2

内置的logback-core为1.4.14

正文

复制代码
<configuration debug="false" scan="true" scanPeriod="10 seconds">
</configuration>

当我在使用SpringBoot内置的logback时,我希望在configuration标签中自定义日志文件扫描大小的时间,于是我使用了以上配置,但无论如何就是不生效。 百度了很久,发现都是这么教配置的,于是我怀疑是我的SpringBoot版本过高从而内置的logback版本已经发生变更从而配置也发生了变更。

于是我另起了一个项目,将SpringBoot版本设置为2.1.5,发现以上配置可以生效。

但是我总不能因为一个日志功能而降低SpringBoot版本吧?

最后查阅官方文档,发现了这么个东西

释义:自1.3.12/1.4.12以来,鉴于检查文件大小是一项相对昂贵的操作,默认情况下每60秒执行一次。但是,您可以将不同的检查增量设置为持续时间。

于是将logback-spring.xml的配置改成了这样

为什么是改成这样?看一段代码就明白了

复制代码
TimeBasedRollingPolicy类中持有了一个TimeBasedFileNamingAndTriggeringPolicy对象,而 
复制代码
TimeBasedFileNamingAndTriggeringPolicyBase是一个抽象类,
复制代码
SizeAndTimeBasedFNATP是TimeBasedFileNamingAndTriggeringPolicyBase的一个实现

再来看一遍配置

解释:

1、ch.qos.logback.core.rolling.TimeBasedRollingPolicy 是基于时间的滚动策略实现类,该类继承了ch.qos.logback.core.rolling.RollingPolicyBase类,而 fileNamePattern就是该父类中的属性

官网文档中的说明,fileNamePattern是必须的属性

2、timeBasedFileNamingAndTriggeringPolicy是TimeBasedRollingPolicy中的一个接口对象,而ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP是该接口的实现类

3、maxFileSize和checkIncrement是SizeAndTimeBasedFNATP类的属性,分别代表着单个文件的存储量和日志文件的扫描时间,单位是毫秒,这里的10000毫秒也就是10秒钟扫描一次

至此问题得到了解决,下面是测试成功的日志文件列表

说明(重要)

依据时间的文件生成触发策略只能保证当到了checkIncrement的时间后开始扫描当前日志文件的大小,当数据量超过了maxFileSize,则生成新的文件。

这也就意味着,如果在checkIncrement时间内有高频率的接口调用,那么当前日志的数据量是会超过maxFileSize的配置的。只能说以较高的扫描频率去防止单文件生成更多的数据量。

相关推荐
RemainderTime3 天前
(十二)Spring Cloud Alibaba 2023.x:基于 Filebeat 构建轻量级 ELK日志追踪体系
分布式·elk·elasticsearch·微服务·架构·logback
ideal-cs11 天前
总结:生产环境Logback日志配置模板与pattern格式案例
java·log4j·logback·pattern·后端日志
非情剑12 天前
logback日志脱敏、FASTJSON日志脱敏
logback
雨辰AI15 天前
SpringBoot3 + 人大金仓 V9 全栈日志实战:Logback + Loki + Filebeat 构建统一日志平台
java·数据库·后端·云原生·eureka·logback·政务
NEGl DRYN1 个月前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
eSsO KERF1 个月前
使用 Logback 的最佳实践:`logback.xml` 与 `logback-spring.xml` 的区别与用法
xml·spring·logback
色空大师1 个月前
【日志文件配置详解】
java·logback·log4j2·日志
成为大佬先秃头2 个月前
日志框架:Logback
springboot·logback
回到原点的码农2 个月前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
shark22222222 个月前
springboot中配置logback-spring.xml
spring boot·spring·logback