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。
相關文章
- J2SE - 關於Commons-Logging、Slf4j、Log4j、Logback的整理
- 類之間的6種關係詳解
- 詳解js原型,建構函式以及class之間的原型關係JS原型函式
- 【java】類之間的關係Java
- logback的使用和logback.xml詳解XML
- commons-logging + log4j原始碼分析原始碼
- Window、WindowManager、View 之間的關係View
- git、github、gitlab之間的關係GithubGitlab
- 一文讀懂常用日誌框架(Log4j、SLF4J、Logback)有啥區別框架
- TLS與SSL之間關係TLS
- React、Ant Design、DvaJS之間的關係ReactJS
- Activity、View、Window之間關係的分析View
- UML類圖--類之間的關係
- 思考 TPS 與 RT 之間的關係
- Window, WindowManager和WindowManagerService之間的關係
- 類與類之間的基本關係
- logback + slf4j idea配置使用技巧Idea
- 帶你深入Java Log框架,徹底搞懂Log4J、Log4J2、LogBack,SLF4JJava框架
- SpringBoot中的slf4j日誌依賴關係Spring Boot
- react、redux、react-redux之間的關係ReactRedux
- Java設計模式-類之間的關係Java設計模式
- Linux Shell檔案之間的包含關係Linux
- 介面、抽象類、普通類之間的關係抽象
- GeoTools應用-JTS(Geometry之間的關係)
- 類圖的6大關係詳解
- Java中的日誌管理:SLF4J與LogbackJava
- CPU、記憶體、磁碟IO之間的關係記憶體
- Kubernetes和Docker之間的關係是什麼?Docker
- 網站和伺服器之間的關係網站伺服器
- ERP與精益生產之間的關係
- Web3和元宇宙之間的關係Web元宇宙
- Laravel 中的多對多關係詳解Laravel
- Maven專案之間關係介紹Maven
- Logback簡介及配置檔案logback.xml詳解XML
- Java日誌框架:logback詳解Java框架
- Logback 快速入門 / 使用詳解
- 前端之DOM解析和渲染與CSS、JS之間的關係前端CSSJS
- 淺析 UART、RS232、TTL 之間的關係