springboot logback日志集成

本文介绍了如何在SpringBoot中集成和配置Logback日志框架。Logback是由log4j创始人设计的高效日志系统。文章提到,SpringBoot已内置Logback,只需添加相关依赖即可。默认情况下,Logback会查找logback-test.xml、logback.groovy或logback.xml配置文件。示例配置文件展示了日志级别的设定,并提到了日志文件按天分割的实现。此外,文章还提醒了当logback.xml使用了application.properties中的变量时可能存在的问题,建议使用logback-spring.xml,并提供了在application.properties中配置日志路径的方法。
摘要由CSDN通过智能技术生成

logback 简介
logback 是由 log4j 的创始人设计的,它比所有现有的日志系统都要快,而且占用空间更小,是目前最优秀的日志框架

首先引入pom

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>

springboot 已经引入了 logback,我们在这里引入就不需要指定版本了,springboot 会自动帮我们引入相关 jar 包
在这里插入图片描述
查看 logback 运行状态在这里插入图片描述

由此可见,logback 默认读取 logback-test.xml、logback.groovy、logback.xml 文件,如果没有配置文件的话采用默认配置,因此即使没有配置文件依然也可以打印日志

如下是一个简单的配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <!--日志格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-4level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>

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

日志级别从低到高分为 TRACE < DEBUG < INFO < WARN < ERROR < FATAL,上面的日志配置打印的结果为
在这里插入图片描述

至于里面的有些参数不明白的可以QQ问我哟或者自己去百度下,logback 日志的打印方式也有很多种,这里不做过多说明,个人比较喜欢每天一个日志文件,下面列出自己设计的一个文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

    <property name="LOG_HOME" value="E:/logs" />

    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <!--日志格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-4level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 每天生成日志文件,文件大小超过指定大小则新生成一个文件,同时将旧文件压缩 -->
    <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/springboot_log.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>10KB</maxFileSize>  <!-- 实际中可以设置50MB推荐 -->
            <maxHistory>30</maxHistory>  <!-- 保存30天 -->
            <totalSizeCap>10GB</totalSizeCap>  <!-- 总日志大小 -->
        </rollingPolicy>
        <encoder>
            <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
        </encoder>
        <!-- 过滤器,可以过滤掉不符合条件的日志,INFO及以上的日志被处理,其它的拒绝 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <root level="debug">
        <appender-ref ref="stdout" />
        <appender-ref ref="logfile" />
    </root>
</configuration>

这边为了测试自己修改了系统时间,设置日志文件大小10KB,生成的文件为

在这里插入图片描述

springboot 集成 logback
由于 logback.xml 文件加载早于 application.properties,所以如果你在 logback.xml 使用了变量时,而恰好这个变量是写在 application.properties 时,那么就会获取不到,因此推荐使用 logback-spring.xml 作为文件名

在application.properties文件里面添加配置

logging.config=classpath:logback-spring.xml

可以正常打印日志,非常简单
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值