SLF4J軟件介紹
slf4j,simple logging facade for java的縮寫(xiě),翻譯為java的簡(jiǎn)單日志外觀。slf4j是一個(gè)開(kāi)源項(xiàng)目,它提供我們一個(gè)一致的API來(lái)使用不同的日志框架,比如: java.util.logging,logback,log4j等。slf4j使用戶可以在運(yùn)行時(shí)嵌入他們想使用的日志框架。從名字中可以看出,它其實(shí)使用的是facade設(shè)計(jì)模式來(lái)實(shí)現(xiàn)的。
使用slf4j,只有一個(gè)強(qiáng)制性的依賴,就是slf4j-api-x.x.x.jar,我們?cè)诰帉?xiě)代碼的時(shí)候,只會(huì)使用這個(gè)jar包里的API,應(yīng)用程序在運(yùn)行時(shí)去類(lèi)路徑下查找綁定的具體日志框架,并使用該綁定的日志框架進(jìn)行實(shí)際的日志操作,如果在應(yīng)用程序的類(lèi)路徑下面沒(méi)有找到合適的綁定的話,slf4j默認(rèn)使用一個(gè)沒(méi)有任何操作的實(shí)現(xiàn)。
在許多著名的項(xiàng)目中都使用了slf4j,比如:Apache ActiveMQ, Ehcache, H2 database, Gradle, GreenMail, Hibernate.....
SLF4J軟件特色
二進(jìn)制兼容
一個(gè)SLF4J綁定指定一個(gè)具體的依賴用來(lái)在底層日志框架綁定slf4j,比如說(shuō) slf4j-jdk14.jar或 slf4j-log4j12.jar。
不同版本的 slf4j-api.jar和SLF4J綁定混合在一起可能會(huì)引起問(wèn)題。比如說(shuō),如果你使用 slf4j-api-1.7.19.jar,然后你應(yīng)該使用 slf4j-simple-1.7.19.jar,使用 slf4j-simple-1.5.5.jar將不會(huì)正常工作。
然而,從客戶端的觀點(diǎn)來(lái)看,所有版本的 slf4j-api都是兼容的。使用 slf4j-api-N.jar編譯的客戶端代將和 slf4j-api-M.jar一起完美運(yùn)行,N和M都是任意的。你僅僅需要確保你綁定的版本和 slf4j-api.jar 匹配。你不需要擔(dān)心項(xiàng)目中給定的依 賴的slf4j-api.jar的版本。你可以使用任何版本的 slf4j-api.jar,只要 slf4j-api.jar的版本和它的綁定匹配,就不會(huì)有問(wèn)題。
在初始化的時(shí)間,如果SLF4J懷疑可能有不匹配問(wèn)題。將會(huì)發(fā)出關(guān)于不匹配的警告信息。
通過(guò)SLF4J統(tǒng)一日志
通常,一個(gè)給定的項(xiàng)目依賴于各種各樣的組件,這些組件依賴的日志API不是SLF4J。一個(gè)項(xiàng)目依賴于一個(gè)JCL、java.util.logging、log4j和SLF4J是很常見(jiàn)的。然后通過(guò)一個(gè)單獨(dú)的方式來(lái)統(tǒng)一日志變得讓人滿意。SLF4J通過(guò)提供對(duì)JCL、
java.util.logging、和slf4j的橋接模塊來(lái)滿足這個(gè)普通的用例。更詳細(xì)的內(nèi)容,請(qǐng)參考 Bridging legacy APIs.
MDC支持
“Mapped Diagnostic Context”本質(zhì)上是日志框架包含的一個(gè)map,應(yīng)用程序代碼提供了key-value對(duì),這個(gè)鍵值對(duì)能被日志框架插入到日志信息中去。MDC數(shù)據(jù)在過(guò)濾信息或觸發(fā)某些操作時(shí)是非常有用的。
SLF4J支持MDC,如果一個(gè)底層的日志框架提供了MDC功能,SLF4J將委托給底層日志框架的MDC。注意,現(xiàn)在僅僅只有l(wèi)og4j和logback提供了MDC功能。如果底層日志框架不支持MDC,比如說(shuō)java.util.loggin,SLF4J將存儲(chǔ)MDC數(shù) 據(jù),但是里面的數(shù)據(jù)需要用戶通過(guò)代碼來(lái)獲取。
因此,作為一個(gè)SLF4J使用者,能利用當(dāng) log4j和logback存在時(shí)的 MDC信息,但是不能強(qiáng)迫用戶依賴這些日志框架。
SLF4J使用說(shuō)明
1、如果用maven,添加slf4j-api依賴,我們用最新的版本2.0.0-alpha1;再添加一個(gè)實(shí)現(xiàn)框架logback,logback中l(wèi)ogback-classic實(shí)現(xiàn)了slf4j接口,我們也添加最新版本1.3.0-alpha5。
2、添加logback.xml配置文件
3、寫(xiě)個(gè)測(cè)試程序
SLF4J更新日志
將bug掃地出門(mén)進(jìn)行到底
優(yōu)化用戶反饋的問(wèn)題,提升細(xì)節(jié)體驗(yàn)
華軍小編推薦:
SLF4J軟件占用內(nèi)存小,性能穩(wěn)定,無(wú)任何捆綁,綠色安全,真正是一款良心軟件!本站還有Maven、OpenCart、Java2 Runtime Environment、GCC For Linux、Free Pascal,供您下載!
您的評(píng)論需要經(jīng)過(guò)審核才能顯示
有用
有用
有用