Logback Day03:滚动日志

前言

在开发中,比如一个系统每天都要执行添加商品信息、修改商品信息,如果我们使用日志去记录,按照上两篇的方式,是不是只能记录每次的记录并且是全部放到一个文件里面去记录的。那么日志滚动就可以设置把每天的记录都分开来记录,文件的名称可以设置为已日期格式,以每天每周每月的日期格式创建文件去记录相应的日志信息。

一、新建一个 Maven 项目,结构如下

1、添加依赖
   <dependencies>
 
        <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.4.5</version>
        </dependency>
 
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.26</version>
        </dependency>
    </dependencies>
 2、在 resources 下,新建一个 logback.xml 配置文件 
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %p %C - %m%n</pattern>
        </encoder>
    </appender>


    <!-- 滚动日志,按照日期每天产生一个日志文件 -->
    <!-- RollingFileAppender:这是一个按照一定日期生成滚动日志 -->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 配置滚动策略,TimeBasedRollingPolicy:是比较常用的一种滚动策略
             用于制定日期时间的日志文件
         -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按照日期每天生成一个日志文件 -->
            <fileNamePattern>ch03/logs/%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 保存归档日志的最大数量,
                 这是设置为30天表示只保留最近30天的日志文件
             -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <!-- 指定日志输出格式,与控制台的输出一样 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %p %C - %m%n</pattern>
        </encoder>

    </appender>

    <root level="debug">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>
</configuration>

 RollingFileAppender:是以日期格式生成文件,可以避免单个文件过大的问题。

这只是一些简单的配置,还有其他的,比如果设置文件的大小, 超过这个大小怎么办、以什么形式去写这个日志文件。

1、<AppendToFile>true</AppendToFile>

以增量的方式添加,如果设置为 false 就是覆盖模式,每添加一次就覆盖之前的。

2、<MaximumFileSize>10MB</MaximumFileSize>           

设置单个文件的大小。

    

3、<MaxSizeRollBackups>10</MaxSizeRollBackups>

当文件大小超过 10MB 后,就会生成一个新的文件比如:2023-09-28.log.1,当生成到 2023-09-28.log.10 之后,再满的话就会覆盖第一个,重新开始记录。

二、新建一个 Main 类,输出日志信息   

1、使用注解创建 log 对象

@Slf4j
public class Main {

    public static void main(String[] args) {
        log.trace("简单的日志输出");
        log.debug("调试日志信息");
        log.info("业务日志信息");
        log.warn("警告日志信息");
        log.error("错误日志信息");
    }

}

同样使用注解去申明 log 对象。 

 2、测试运行结果

运行成功后,就会在 ch03/logs/ 下创建一个以日期生成的文件,不是设置为每天一个记录文件的吗?现在就把系统时间修改为明天,再去测试一下。

3、修改系统时间,继续测试
 

 更改时间后,再次测试。

 

更改时间后,也可以添加新的日志,那就证明我们的配置是没有问题的,在做一些自动任务时就可以使用这个日志滚动,让程序自动去添加相应时间段的日志信息。并且还可以设置日志文件保存的时间,具体的使用还是需要相应的需求去实现。

三、gitee 案例

这门课程的完整案例我已经上传到 git 上了,地址:https://gitee.com/qiu-feng1/logback-study.git 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值