springboot日志的使用與多個日志框架沖突問題及解決
springboot日志的使用與多個日志框架沖突
1.日志級別
從低至高為:ALL——DEBUG——INFO——WARN——ERROR——OFF,
日志級別越低打印的日志越詳細。
2.日志分類
- 項目根日志(RootLogger):全局日志,一個項目只有一個根日志
- 子日志(Logger):包級別日志,一個項目中可以有多個子日志
3.logback日志的使用
springboot默認(rèn)使用logback日志。




4.log4j的使用

<!-- log4j依賴-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
5.log4j2的使用

<!-- log4j2依賴-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>


6.統(tǒng)一日志標(biāo)準(zhǔn)
1.三種日志框架(實現(xiàn)不同門面)同時使用演示


從前面的例子我們可以看出,Logback已經(jīng)默認(rèn)實現(xiàn)了slf4j標(biāo)準(zhǔn),而Log4j和Log4j2并沒有實現(xiàn)。
2.log4j實現(xiàn)slf4j門面





<!-- springboot啟動器依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<!-- 排除logback包-->
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>3.log4j2實現(xiàn)slf4j門面


<!-- log4j2實現(xiàn)slf4j依賴-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<!-- springboot啟動器依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<!-- 排除logback包-->
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<!-- 排除log4j2橋接slf4j依賴-->
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
7.各種日志類Jar包用途
- slf4j提供:
jcl-over-slf4j.jar --> (jcl -> slf4j) 將Jakarta Commons Logging日志框架到 slf4j 的橋接 jul-to-slf4j.jar --> (juc -> slf4j) 將java.util.logging的日志橋接到 slf4j log4j-over-slf4j.jar--> (log4j -> slf4j) 將log4j 的日志,橋接到slf4j osgi-over-slf4j.jar --> (osgi -> slf4j) 將osgi環(huán)境下的日志,橋接到slf4j slf4j-android.jar --> (android-> slf4j) 將android環(huán)境下的日志,橋接到slf4j slf4j-api.jar --> slf4j 的api接口jar包 slf4j-ext.jar --> 擴展功能 slf4j-jcl.jar --> (lf4j -> jcl ) slf4j 轉(zhuǎn)接到 Jakarta Commons Logging日志輸出框架 slf4j-jdk14.jar --> (slf4j -> jul ) slf4j 轉(zhuǎn)接到 java.util.logging,所以這個包不能和jul-to-slf4j.jar同時用,否則會死循環(huán)??! slf4j-log4j12.jar --> (slf4j -> log4j) slf4j 轉(zhuǎn)接到 log4j,所以這個包不能和log4j-over-slf4j.jar同時用,否則會死循環(huán)??! slf4j-migrator.jar --> 一個GUI工具,支持將項目代碼中 JCL,log4j,java.util.logging的日志API轉(zhuǎn)換為slf4j的寫法 slf4j-nop.jar --> (slf4j -> null) slf4j的空接口輸出綁定,丟棄所有日志輸出 slf4j-simple.jar --> (slf4j -> slf4j-simple ) slf4j的自帶的簡單日志輸出接口
- log4j2提供:
log4j-1.2-api.jar --> (log4j -> log4j2) 將log4j 的日志轉(zhuǎn)接到log4j2日志框架 log4j-api.jar --> log4j2的api接口jar包 log4j-core.jar --> ( log4j2 -> log4j-core) log4j2的日志輸出核心jar包 log4j-slf4j-impl.jar--> (slf4j -> log4j2) slf4j 轉(zhuǎn)接到 log4j2 的日志輸出框架 (不能和 log4j-to-slf4j同時用) log4j-to-slf4j.jar --> ( log4j2 -> slf4j) 將 log4j2的日志橋接到 slf4j (不能和 log4j-slf4j-impl 同時用)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解
本文主要介紹了Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
在SpringBoot項目中動態(tài)切換數(shù)據(jù)源和數(shù)據(jù)庫的詳細步驟
在許多企業(yè)級應(yīng)用中,可能需要根據(jù)不同的業(yè)務(wù)需求來切換不同的數(shù)據(jù)庫,如讀寫分離、分庫分表等場景,Spring Boot 提供了靈活的數(shù)據(jù)源配置方式,本文將介紹如何在 Spring Boot 項目中實現(xiàn)動態(tài)切換數(shù)據(jù)源和數(shù)據(jù)庫的方案,需要的朋友可以參考下2025-08-08
SpringBoot 下的 Static 文件夾打包成前端資源的示例代碼
這篇文章主要介紹了SpringBoot 下的 Static 文件夾如何打包成前端資源,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
Java畢業(yè)設(shè)計實戰(zhàn)之醫(yī)院心理咨詢問診系統(tǒng)的實現(xiàn)
這是一個使用了java+Spring+Maven+mybatis+Vue+mysql開發(fā)的醫(yī)院心理咨詢問診系統(tǒng),是一個畢業(yè)設(shè)計的實戰(zhàn)練習(xí),具有心理咨詢問診該有的所有功能,感興趣的朋友快來看看吧2022-01-01

