commons-logging,log4j,logback,slf4j之間的關係詳解
轉載自 commons-logging,log4j,logback,slf4j之間的關係詳解
commons-logging
是apache最早提供的日誌的門面介面。它的主要作用是提供一個日誌門面,使用者可以使用不同的日誌實現。使用者可以自由選擇第三方的日誌元件作為具體實現,像log4j,或者jdk自帶的logging, common-logging會通過動態查詢的機制,在程式執行時自動找出真正使用的日誌庫。common-logging內部有一個Simple logger的簡單實現,但是功能很弱。
官網:https://commons.apache.org/proper/commons-logging/
slf4j
全稱:Simple Logging Facade for Java
官網:https://www.slf4j.org/
The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time.
從官網的描述看,slf4j只是一種日誌的門面和日誌抽象框架,而java.util.logging,log4j,logback都是slf4j抽象框架的具體實現,只要呼叫slf4j的API就可以整合任何的實現框架在一起。
logging
Java內部自帶的日誌工具,java.util包下。
log4j
Apache下的一個開源日誌框架,也是目前應用最廣的一個日誌框架。
官網:https://logging.apache.org/log4j/2.x/
logback
logback是slf4j的原生實現框架,同樣是log4j同一個人之手,但擁有比log4j更多的優點和更多的特性,用來代替log4j。
官網:https://logback.qos.ch/
為什麼要選擇logback作為目前的日誌框架可參考下面連結
英文:https://logback.qos.ch/reasonsToSwitch.html
中文:http://www.oschina.net/translate/reasons-to-prefer-logbak-over-log4j
更快的執行速度
基於我們先前在log4j上的工作,logback 重寫了內部的實現,在某些特定的場景上面,甚至可以比之前的速度快上10倍。在保證logback的元件更加快速的同時,同時所需的記憶體更加少。
為什麼要推薦logback作為首推的日誌框架,僅看上面這一點,就覺得logback的強悍和優秀!
總結
1、commons-loggin,slf4j只是一種日誌抽象門面,不是具體的日誌框架。
2、log4j,logback是具體的日誌框架。
3、一般首選使用slf4j+logback,或者slf4j+log4j,commons-logging+log4j。
相關文章
- 類之間的6種關係詳解
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- 類之間的關係
- 詳解js原型,建構函式以及class之間的原型關係JS原型函式
- 【java】類之間的關係Java
- Window、WindowManager、View 之間的關係View
- ODS與DW之間的關係
- UML中類之間的關係
- tablespace和datafile之間的關係
- 不同層之間的物件關係物件
- 深入瞭解Looper、Handler、Message之間關係OOP
- TLS與SSL之間關係TLS
- ps 與 svmon之間關係
- Window, WindowManager和WindowManagerService之間的關係
- git、github、gitlab之間的關係GithubGitlab
- UML類圖--類之間的關係
- Activity、View、Window之間關係的分析View
- QT中類之間的關係圖QT
- .Net Framework各版本之間的關係Framework
- 類與類之間的基本關係
- logback的使用和logback.xml詳解XML
- commons-logging + log4j原始碼分析原始碼
- 常見Web技術之間的關係,你瞭解多少?Web
- 一文讀懂常用日誌框架(Log4j、SLF4J、Logback)有啥區別框架
- 類圖的6大關係詳解
- table/segment/extent/block之間關係BloC
- 思考 TPS 與 RT 之間的關係
- Java設計模式-類之間的關係Java設計模式
- 介面、抽象類、普通類之間的關係抽象
- 如何理解Nginx, WSGI, Flask之間的關係NginxFlask
- 大話UML中類之間的關係
- react、redux、react-redux之間的關係ReactRedux
- PHP-FPM,Nginx,FastCGI 之間的關係PHPNginxAST
- 黑客和開源革命之間的關係黑客
- CSS系列:CSS中盒子之間的關係CSS
- 談Ubuntu與FOSS之間的關係(轉)Ubuntu
- SAP FICO表關係圖解 BSEG與BSIS、BSAS、BSID、BSAD、BSIK、BSAK之間的關係圖解
- Activiti中的log4j(slf4j)的配置