slf4j-api、slf4j-log4j12以及log4j之間什麼關係?
slf4j:Simple Logging Facade for Java,為java提供的簡單日誌Facade。Facade:門面,更底層一點說就是介面。他允許使用者以自己的喜好,在工程中通過slf4j接入不同的日誌系統。更直觀一點,slf4j是個資料線,一端嵌入程式,另一端連結日誌系統,從而實現將程式中的資訊匯入到日誌系統並記錄。
因此,slf4j入口就是眾多介面的集合,他不負責具體的日誌實現,只在編譯時負責尋找合適的日誌系統進行繫結。具體有哪些介面,全部都定義在slf4j-api中。檢視slf4j-api原始碼就可以發現,裡面除了public final class LoggerFactory類之外,都是介面定義。因此,slf4j-api本質就是一個介面定義。
下圖比較清晰的描述了他們之間的關係:
當系統採用log4j作為日誌框架實現的呼叫關係:
首先系統包含slf4j-api作為日誌接入的介面;
at compile時slf4j-api中public final class LoggerFactor類中
private final static void bind() 方法會尋找具體的日誌實現類繫結,主要通過
StaticLoggerBinder.getSingleton();語句呼叫
slf4j-log4j12:連結slf4j-api和log4j中間的介面卡。它實現了slf4j-apiz中StaticLoggerBinder介面,從而使得在編譯時繫結的是slf4j-log4j12的getSingleton()方法
log4j:這個是具體的日誌系統。通過slf4j-log4j12初始化Log4j,達到最終日誌的輸出。
相關文章
- TPS和響應時間之間是什麼關係
- 設計,架構,框架之間是什麼關係?架構框架
- 光敏電阻與光強之間什麼關係?
- python與人工智慧之間有什麼關係?Python人工智慧
- Kubernetes和Docker之間的關係是什麼?Docker
- 特殊特性與FMEA之間的關係是什麼?
- 大資料與Hadoop之間是什麼關係?大資料Hadoop
- Java中Class類與Object類之間有什麼關係?JavaObject
- SDK、API 和 app 之間的關係和聯絡是什麼?APIAPP
- 融資規模、估值、股份稀釋之間有什麼關係?
- PHP的工作原理以及lamp四者之間的關係PHPLAMP
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- Linux和大資料雲端計算之間有什麼關係?Linux大資料
- SSL證書與我們普通人之間有什麼關係
- 軟體之間有什麼關係?看完這個你就暈了
- 在Linux中,Unix和Linux之間的關係是什麼?Linux
- 類之間的關係
- 專案,計劃以及總體工作之間的關係(轉)
- 雲端計算、大資料和物聯網之間,之間有什麼關係與區別?大資料
- 搞不清FastCgi與PHP-fpm之間是個什麼樣的關係ASTPHP
- Python與人工智慧間有什麼關係?Python人工智慧
- 【java】類之間的關係Java
- TLS與SSL之間關係TLS
- ps 與 svmon之間關係
- 容器、容器雲和容器化PaaS平臺之間究竟是什麼關係?
- 世界經濟論壇:失業率與經濟衰退之間有什麼關係?
- 什麼是dp,dip,sp和px及他們之間的的關係?《二》
- 請問併發量和同時線上人數之間有什麼關係?
- 詳解js原型,建構函式以及class之間的原型關係JS原型函式
- flashback與dmt tbs以及trigger,materialized view log之間的關係!ZedView
- 執行緒與程式之間有什麼關係?Linux執行緒與程式有什麼區別?執行緒Linux
- 什麼是子域名?主域名和子域名之間有哪些關係和區別?
- Window、WindowManager、View 之間的關係View
- ODS與DW之間的關係
- UML中類之間的關係
- table/segment/extent/block之間關係BloC
- tablespace和datafile之間的關係
- 不同層之間的物件關係物件