springboot05-日誌的配置

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。
在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章