commons-logging,log4j,logback,slf4j之間的關係詳解

茅坤寶駿氹發表於2018-05-04

轉載自 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。


相關文章