springboot日志的使用與多個日志框架沖突問題及解決
springboot日志的使用與多個日志框架沖突
1.日志級別
從低至高為:ALL——DEBUG——INFO——WARN——ERROR——OFF,
日志級別越低打印的日志越詳細(xì)。
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)文章
JAVA調(diào)用Deepseek的api完成基本對話簡單代碼示例
這篇文章主要介紹了JAVA調(diào)用Deepseek的api完成基本對話的相關(guān)資料,文中詳細(xì)講解了如何獲取DeepSeek?API密鑰、添加HTTP客戶端依賴、創(chuàng)建HTTP請求并使用示例代碼來對接DeepSeek?API,需要的朋友可以參考下2025-02-02JavaWeb?使用DBUtils實現(xiàn)增刪改查方式
這篇文章主要介紹了JavaWeb?使用DBUtils實現(xiàn)增刪改查方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12mybatis?resultMap沒有全部對應(yīng)的字段處理方式
這篇文章主要介紹了mybatis?resultMap沒有全部對應(yīng)的字段處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03SpringBoot使用Apache POI庫讀取Excel文件的操作詳解
在日常開發(fā)中,我們經(jīng)常需要處理Excel文件中的數(shù)據(jù),無論是從數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)、處理數(shù)據(jù)報表,還是批量生成數(shù)據(jù),都可能會遇到需要讀取和操作Excel文件的場景,本文將詳細(xì)介紹如何使用Java中的Apache POI庫來讀取Excel文件,需要的朋友可以參考下2025-01-01淺談Spring Data Redis讀不到設(shè)進去的值
本文主要介紹了Spring Data Redis怎么讀不到我剛才設(shè)進去的值,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09SpringCloud?Nacos服務(wù)分級存儲模型詳解
Nacos服務(wù)分級存儲模型是Nacos存儲服務(wù)注冊信息和配置信息的核心模型之一,本文將對?Nacos?服務(wù)分級存儲模型進行深入解析,感興趣的朋友一起看看吧2024-02-02