SpringBoot选用SLF4j和logback;
SLF4j是抽象层,logback实现层
1、SLF4j使用
以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用抽象接口类。
给系统里面导入slf4j的jar和logback的实现jar
package com.example.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger= LoggerFactory.getLogger(HelloWorld.class);
logger.info("HelloWorld");
}
}
每一个日志的实现框架都有自己的配置文件。
使用了slf4j以后,配置文件还是做成日志实现框架的自己本身配置文件。
2.遗留问题
a(slf4j+logback):Spring、Hibernate、MyBatis、xxxx:每一个框架的底层又使用了不同的日志框架。
我们要做到的就是:统一日志记录,即使是别的框架和我一起统一使用slf4j输出。
我们来看一下slf4j的legacy-api:http://www.slf4j.org/legacy.html
根据官方的来看,在多个框架下添加中间件进行替换,进行狸猫换太子,既能是的框架可以正常运行,然后添加slf4j进行日志管理。
如何让系统中所有的日志都统一到slf4j:
1、将系统中其他日志框架先排除出去;
2、用中间包来替换原有的日志框架;
3、我们导入slf4j其他的实现。
3.SpringBoot的日志文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.2.5.RELEASE</version>
<scope>compile</scope>
</dependency>
SpringBoot使用它来做日志功能:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.2.5.RELEASE</version>
<scope>compile</scope>
</dependency>
SpringBoot底层依赖关系
总结:
1、SpringBoot底层也是slf4j+logback的方式进行日志记录
2、SpringBoot也把其他的日志都替换成了slf4j
3、中间替换包:
4、如果我们要引入其他框架?一定会要把这个框架的默认日志依赖移除掉。
对于Spring5之后,Spring的底层jul已经被转化成了log4j,然后log4j添加中间层,实际还是slf4j,达到了最好适配SpringBoot底层的slf4j+logback。
来源:CSDN
作者:夏天的风€&^_^
链接:https://blog.csdn.net/qq_41617848/article/details/104708646