logback按照日期和文件大小切分日志

本文介绍了在SpringBoot项目中如何使用SizeAndTimeBasedRollingPolicy策略,按日期和文件大小控制日志文件的生成和管理,以优化日志文件管理和查看效率。

在实际项目中,如果采用TimeBasedRollingPolicy切分日志文件,每天生成一个日志文件,有时候该文件的体积也会比较大,不利于查看。那么,我们想每日的文件是不是还可以根据大小进行切分呢?答案是:可以的。使用:SizeAndTimeBasedRollingPolicy,从这个类名就可以看出来,该策略是从时间和文件大小两个维度进行切分文件的。本文紧接着《springboot工程中使用slf4j+logback实现日志唯一编号》来介绍如何使用该策略。

一、依赖版本说明

    从官方文档的一段描述可知,从logback-1.1.7版本开始提供该策略,之前是使用的SizeAndTimeBasedFNATP。具体描述如下:

In versions prior to 1.1.7, this document mentioned a component called SizeAndTimeBasedFNATP. However, given that SizeAndTimeBasedFNATP offers a simpler configuration structure, we no longer document SizeAndTimeBasedFNATP. Nevertheless, earlier configuration files using SizeAndTimeBasedFNATP will continue to work just fine. In fact, SizeAndTimeBasedRollingPolicy is implemented with a SizeAndTimeBasedFNATP subcomponent.

二、策略配置

    直接上配置代码,关键标签使用注释进行了描述。

<appender name="file"  class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_HOME}/current.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <!-- 日志文件输出的文件名 -->
        <FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}-%i.log</FileNamePattern>
        <!-- 单个日志文件最大数据量 -->
        <maxFileSize>512KB</maxFileSize>
        <!-- 日志文件最大数据量 -->
        <totalSizeCap>1GB</totalSizeCap>
        <!-- 日志文件保留天数 -->
        <MaxHistory>15</MaxHistory>
    </rollingPolicy>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{logId}] [%thread] %-5level %logger{60}[%L] - %msg%n</pattern>
    </encoder>
</appender>

文章作者:xiaohui249
本文链接:logback按照日期和文件大小切分日志 - Java Tech
版本所有 ©转载时必须以链接形式注明作者和原始出处

logback是一个可靠的Java日志框架,可以根据设定的大小日期来管理日志文件。按照大小进行日志管理可以控制日志文件的大小,防止日志文件无限增大。按照日期进行日志管理可以根据时间周期对日志文件进行切分,使得日志文件更易于管理查找。 logback按大小进行日志管理的原理是根据设定的文件大小阈值,当日志文件达到阈值时,会自动将当前的日志文件进行压缩,并创建一个新的日志文件来继续输出日志。通过这种方式,可以保持日志文件的大小在一个可控的范围内,避免过大的日志文件占用过多的存储空间。 logback日期进行日志管理的原理是根据设定的日期模式,当时间周期到达设定的切分周期时,会自动将当前的日志文件进行重命名,并创建一个新的日志文件来继续输出日志。通过这种方式,可以按照时间来划分日志文件,方便根据日期来查找管理日志。例如,可以按照每天、每周或每月来切分日志文件,使得不同时间段的日志文件能够被单独存档备份。 logback提供了丰富的配置选项,可以灵活地设置日志文件的大小阈值日期模式。可以通过在配置文件中设置相关参数来启用按大小日期进行日志管理的功能。通过合理的配置,我们可以实现对日志文件的自动管理,避免过大的日志占用过多的存储空间,同时方便日志的查找分析。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值