今天就跟大家聊聊有關(guān)如何從commons-logging到slf4j,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
10多年的易門網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整易門建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“易門網(wǎng)站設(shè)計”,“易門網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
為了讓系統(tǒng)的log實現(xiàn)變成可配置,java的大牛們實現(xiàn)了兩種底層接口規(guī)范,1.commons-logging 2.slf4j
一、commons-logging這是一個Apache項目,歷史悠久,基于classloader的。包括spring都在使用這個log底層接口規(guī)范
實現(xiàn)原理:我定義1個LogFactory,這個LogFactory可以生產(chǎn)Log
至于使用哪個LogFactory就要根據(jù)系統(tǒng)不同的配置參數(shù),所以他就能夠生產(chǎn)出不同廠家的Log
比如說:
commongs-logging在創(chuàng)建LogFactory的時候有這么個順序,
a.首先去判斷jvm配置參數(shù)中是否有設(shè)置
b.然后在去檢測 META-INF/services/org.apache.commons.logging.LogFactory文件
c.實在找不到就去找用戶 commons-logging.properties 里面的配置
d.最后是在都沒找到的話,那就使用自己的默認(rèn)實現(xiàn)LogFactoryImpl(LogFactoryImpl這個默認(rèn)實現(xiàn)比較有意思,他默認(rèn)可以生產(chǎn)Log4JLogger、Jdk14Logger、Jdk13LumberjackLogger、SimpleLog)
結(jié)論:如果使用commons-logging,必須需要配置一個真正的實現(xiàn)log*.jar干活
二、 slf4j全稱為Simple Logging Facade for JAVA,java簡單日志門面 , 類似于Apache Common-Logging,是對不同日志框架提供的一個門面封裝,可以在部署的時候不修改任何配置即可接入一種日志實現(xiàn)方案。但是,他在編譯時靜態(tài)綁定真正的Log庫。使用SLF4J時,如果你需要使用某一種日志實現(xiàn),那么你必須選擇正確的SLF4J的jar包的集合(各種橋接包)。 slf4j是一個日志系統(tǒng)的封裝,對外提供統(tǒng)一的API,不提供日志具體實現(xiàn)
1.slf4j基本包 slf4J-api.jar
2.slf4j橋接具體log實現(xiàn)的包:
log4j:slf4j-log4j12.jar
logback:logback-core、logback- classic
3.也可以把slf4j作為commongs-logging的一種實現(xiàn),需要引入jcl-over-slf4j.jar(這個里面主要關(guān)注是在META-INF/services/org.apache.commons.logging.LogFactory文件中配置了LogFactory實現(xiàn)類:org.apache.commons.logging.impl.SLF4JLogFactory)
三、總結(jié)
1.目前市面上真正在用的也就是log4j和logback。都是一個人寫的,據(jù)說logback比log4j性能要好很多,下面看看具體說法
LogBack作為一個通用可靠、快速靈活的日志框架,將作為Log4j的替代和SLF4J組成新的日志系統(tǒng)的完整實現(xiàn)。LogBack聲稱具有極佳的性能,“ 某些關(guān)鍵操作,比如判定是否記錄一條日志語句的操作,其性能得到了顯著的提高。這個操作在LogBack中需要3納秒,而在Log4J中則需要30納秒。 LogBack創(chuàng)建記錄器(logger)的速度也更快:13微秒,而在Log4J中需要23微秒。更重要的是,它獲取已存在的記錄器只需94納秒,而 Log4J需要2234納秒,時間減少到了1/23。跟JUL相比的性能提高也是顯著的”。 另外,LOGBack的所有文檔是全面免費提供的,不象Log4J那樣只提供部分免費文檔而需要用戶去購買付費文檔。
2.看看SLF4j和具體實現(xiàn)的關(guān)系:
3. 用別的日志接口,轉(zhuǎn)成slf4j的方法
1、commons-loggin,slf4j只是一種日志抽象門面,不是具體的日志框架。
2、log4j,logback是具體的日志框架。
3、一般首選使用slf4j+logback,或者slf4j+log4j,commons-logging+log4j。
看完上述內(nèi)容,你們對如何從commons-logging到slf4j有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。