开发者学堂课程【SpringBoot快速掌握 - 核心技术:SpringBoot日志关系】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/612/detail/9236
SpringBoot 日志关系
一、SpringBoot 日志关系
Springboot 怎么做的,首先先创建一个新的项目
Group 名称是 com.atguigu ,Artifact
名称是 spring-boot-03-logging 。
包名要改成 com.atguigu.springboot 。选择 Web 模块。
pom 文件引入了外部依赖,测试依赖
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncodin
g
>
<project
.
reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
1. 依赖分析
分析下这些依赖的关系是怎么样的,有两种办法:
第一种是在右边点出 Maven Projects 找到 Dependencies 。如果右边没有 Maven Projects 就可以在左下角把他点出来
第二种可以直接在它里面右键 Diagrams, show Dependencies 。
然后 idea 会以图谱的方式展示出整个的依赖关系。
spring-boot-03-logging 依赖的是 spring-boot-starter-web
这个 web 依赖了
jackson-databind;
spring-boot-starter-tomcat;
hibernate-validator;
spring-boot-starter
等。
Spring-boot-starter 是每一个启动器每一个场景都需要依赖的东西。
Spring-boot-starter 里面的几个模块:
Spring-boot-autoconfigure 自动配置;
snakeyaml;
spring-boot-starter-logging。
SpringBoot 适用他来做日志功能
<dependency>
<groupId>org.springframework.book</groupId>
<artifactId>spring-booy-starter-logging</artifactId>
</dependency>
2. 日志用法
这就是 Spring Boot 底层依赖关系:
总结:
1)SpringBoot 底层也是使用 slf4j+logback 的方式进行日志记录
2)SpringBoot 也把其他的日志都替换成了 slf4j ;
3)中间替换包
@SuppressWarnings(“rawtypes”)
Public abstract class LogFactory{
Static string UNSUPPORTED_OPERATION_IN_JCL_OVER_SLF4J=”
HTTP://WWW.slf4j.org/codes.html#unsuppoeted_operation_in_jcl_over_slf4j";
Static logfactory logfactory=new SLF4JLogFactory();
4)如果要引入其他框架?一定要把这个框架的默认日志依赖移除掉
Spring 框架用的是 commons-logging ;
<dependency>
<groupId>org.springframework.book</groupId>
<artifactId>spring-booy-starter-logging</artifactId>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusions>
</exclusion>
</dependency>
SpringBoot 能自动适配所有的日志,而且底层使用 slf4j+logback 的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉。