SpringBoot中的SFL4J日志

SpringBoot:底层是Spring框架,Spring框架默认使用的是JCL日志的抽象层
SpringBoot选用SLF4J和logback

如何系统地在系统中使用SLF4J

在开发的使用,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法

SLF4J的使用原理:
在这里插入图片描述

遗留问题

当使用多个框架时,不同的框架使用的日志组件不同,这时我们就要统一日志记录,即使是别的框架也要和我们统一使用SLF4J进行输出,如下图:
在这里插入图片描述
通过适配jar包将原来框架对这些日志的依赖接触(可以理解为设计模式中的适配器模式),使之可以使用SLF4J进行输出。

所以,如何让系统中所有的日志统一到SLF4J,参照以下几步:

  1. 将系统中其他日志框架先排除出去;
  2. 用中间包来替换原有的日志框架;
  3. 我们再导入SLF4J其他的实现

SpringBoot里面的日志问题

底层依赖关系:
在这里插入图片描述
总结:

  • SpringBoot底层也是使用SLF4J+logback的方式进行日志记录的
  • SpringBoot也把其他的日志替换成了SLF4J
  • 如果我们要引入其他框架,一定要把这个框架的默认日志包给移除掉

核心总结:
SpringBoot能自动适配所有的日志框架,而且底层使用SLF4J+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志包排除掉。

日志使用

默认配置

SpringBoot默认帮我们配置好了日志

在SpringBoot的测试类下

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Springboot3ApplicationTests {

    //记录器
    Logger logger = LoggerFactory.getLogger(getClass());

    @Test
    void contextLoads() {
        //日志的级别:
        //由低到高      trace<debug<info<warn<error
        //可以调整输出的日志级别,日志就只会在这个级别以后的高级别生效

        logger.trace("这时trace日志");//trace是用来跟踪一些信息的
        logger.debug("这是debug日志");//debug是用来输出一些调试日志的

        logger.info("这是info日志");//info是我们自己定义想要输出的一些信息
        logger.warn("这是warn日志");//warn是日志警告信息
        logger.error("这是error日志");//error是输出错误信息
    }

}

在这里插入图片描述
我们可以手动调节日志的级别,只要在配置文件里面设置就行了,如下:

#设置日志输出的级别
logging.level.com.gcl=trace
指定文件路径下生成日志:
# SpringBoot提示logging.file已经过期了
# 但是还有logging.file.name和logging.file.path两个可以使用

logging.file.name=D:/springboot.log

我们现在使用logging.file的话,SpringBoot会提示logging.file已经过期了,所以我们可以使用logging.file.name或logging.file.path来生成日志

logging.file.name不指定路径的话就在当前项目下的根目录生成日志文件

logging.file.path是在当前磁盘的根路径下创建Spring文件夹和里面的log文件,并使用spring.log作为默认文件名,如下:

logging.file.path=/spring/log

如果同时配置上面两个属性:默认只有logging.file.name 生效,会在项目根目录下生成 .log文件

输出日志的格式:

在控制台输出指定的日志格式

# 在控制台输出指定的日志格式

logging.pattern.console=%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n

在指定文件中日志输出的格式

# 指定文件中日志输出的格式

logging.pattern.file=%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值