当前位置: 代码网 > it编程>编程语言>Java > SpringBoot3配置Logback日志滚动文件的方法

SpringBoot3配置Logback日志滚动文件的方法

2024年08月07日 Java 我要评论
简介本文介绍了在springboot3中配置logback日志滚动文件的方法,因为springboot3内置的logback版本是1.4.14,之前使用springboot2.1.5的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的配置的。只能说以较高的扫描频率去防止单文件生成更多的数据量。

以上就是springboot3配置logback日志滚动文件的方法的详细内容,更多关于springboot3 logback滚动文件的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com