1. 日誌框架的介紹
日誌門面(日誌的抽象層) | 日誌實現 |
---|---|
JCL、SLF4J、Jboss-logging、Commons-logging | Log4j、JUL、Log4j2、Logback |
2. SLF4J的使用
在開發過程中,日誌記錄方法的調用,不應該來直接調用日誌的實現類,而是調用日誌抽象層裏面的方法;
**具體方法:**給系統裏面導入SLF4J的jar和logback的實現jar
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("Hello World");
}
}
圖示:
每一個日誌的實現框架都有自己的配置文件。使用SLF4J以後,配置文件還是做成日誌實現框架的配置框架,SLF4J只提供一個統一的抽象層。
3. 如何讓系統中所有的日誌都統一到SLF4J?
一般地,系統中會用到好幾種框架,比如:Spring、Hibernate、MyBaits等。但是這幾個框架分別所用的日誌框架不同,爲了將它們統一起來,我們可以:
- 將系統中其他日誌框架先排除出去;
- 用中間包來替換原有的日誌框架;
- 再來導入SLF4J其他的實現。
4. SpringBoot日誌關係
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
SpringBoot使用它來做日誌功能。
總結:
- SpringBoot底層也是使用slf4j + logback的方式進行日誌記錄;
- SpringBoot也把其他的日誌都替換成了slf4j;
- 中間轉換包;
- 如果我們要引入其他框架,一定要把這個框架的默認日誌依賴移除掉;
- SpringBoot能自動適配所有的日誌,而且底層使用 slf4j + logback 的方式記錄日誌。在引入其他框架的時候,我們需要做的只是把這個框架依賴的日誌框架排除掉。
5. 日誌使用
1.默認配置
SpringBoot默認幫我們配置好了日誌;
2.指定配置
給類路徑下放上每個日誌框架自己的配置文件即可,SpringBoot就不使用它的默認配置了。
6.切換日誌框架
可以按照 slf4j 的日誌適配圖,進行相關的切換。