日志框架介绍(SLF4J及其使用)
本文主要介紹
1.日志框架基本介紹及Spring Boot中默認使用框架(SLF4J+LogBack);
2.SLF4J的使用
3.項目中日志框架統一問題
4.Spring Boot中如何實現日志框架統一問題(3的最佳實踐)
1. 日志框架基本介紹
一般情況下搭建日志框架時,搭建 日志抽象層(定義接口) + 日志實現層組合 ,項目代碼中應該使用抽象層,不應該使用日志實現類;
常見的日志框架包含:
日志抽象層: JCL(2014年不再維護), SLF4J,jboss-logging
日志實現層:jul(java.util.logging,jdk工具包下提供的),log4j, LogBack(log4j存在性能問題,logback是基于SLF4J抽象層編寫的實現層), log4j2 (Apache下的,功能強大,但與其他的框架整合并不廣泛)
(注:SLF4J,log4j,logback為同一個作者)
Spring框架選擇了JCL作為默認日志輸出;Spring Boot選擇的是 SLF4J + LogBack作為默認日志;
2.SLF4J框架的使用
SLF4J日志框架基本使用 (抽象層 + 實現層)
1,引入SLF4J的Jar
2,引入實現層(log4j, jul等)對應的jar
3,引入對應實現層的slf4j適配器jar (適配器jar由SLF4J提供的,編寫了SLF4J接口類的實現,不同適配器實現接口時,調用的是對應的實現層框架的方法;實現層為Logback時,不需要適配器jar,因為logback就是基于SLF4J抽象層編寫);
3. 項目中日志框架統一問題
當項目中引入多個第三方jar,而每個jar底層使用的日志選型不一樣,造成項目中日志框架混亂【Spring(commons logging)、Hibernate(jboss-logging)】
SLF4J提供的解決方案:引用第三方jar時,exclude對應的底層日志A.jar,引入由SLF4J提供的日志轉換器 B.jar(當前適配器B.jar 定義了A.jar中一摸一樣的類和方法,方法中通過調用SLF4J的API實現)
具體步驟:
排除系統中其他的日志框架
使用SLF4J提供的轉換器包替換要替換的日志框架
引入要使用的SLF4J實現JAR
4.Spring Boot中如何實現日志框架統一問題(B的最佳實踐)
Spring Boot 中使用的默認的日志框架為 SLF4J + LogBack
總結
以上是生活随笔為你收集整理的日志框架介绍(SLF4J及其使用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界minecraft-Python
- 下一篇: c++17(33)-数值上下限、无穷、非