国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
使用Slf4 j取代系統(tǒng)已有的 Apache Common-Logging 實(shí)現(xiàn)日志

Apache Common-Logging是廣泛使用的Java日志門(mén)面庫(kù)。我以前一直都使用它和log4j編寫(xiě)日志。
Apache Common-Logging通過(guò)動(dòng)態(tài)查找的機(jī)制,在程序運(yùn)行時(shí)自動(dòng)找出真正使用的日志庫(kù)。
Apache Common-Logging一直都運(yùn)作得很好。直到最近,我寫(xiě)OSGI插件時(shí),它不能工作了。
原因是Apache Common-Logging使用了ClassLoader尋找和載入底層的日志庫(kù)。而OSGI中,不同的插件使用自己的ClassLoader。
一個(gè)線程的ClassLoader在執(zhí)行不同的插件時(shí),其執(zhí)行能力是不同的。
OSGI的這種機(jī)制保證了插件互相獨(dú)立,然而確使Apache Common-Logging無(wú)法工作!

解決之道是使用新的日志門(mén)面庫(kù)Slf4j。
Slf4j庫(kù)類(lèi)似于Apache Common-Logging。但是,他在編譯時(shí)靜態(tài)綁定真正的Log庫(kù)。使用Slf4j時(shí),如果你需要使用某一種日志實(shí)現(xiàn),那么你必須選擇正確的Slf4j的jar包的集合。
這確實(shí)麻煩了一點(diǎn),但總算可以在OSGI中開(kāi)發(fā)日志了。

其實(shí),這一點(diǎn)點(diǎn)工作也不算麻煩。

使用CommonLog接口而實(shí)際由Slf4j和Log4j實(shí)現(xiàn)的過(guò)程
1,項(xiàng)目中照常使用

12
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;

編寫(xiě)日志。

2,仍然在src下使用log4j.properties文件進(jìn)行配置。

3,使用的所有jar文件:
1)log4j-1.2.15.jar 這是log4j的庫(kù)。 Slf4j并不改變這個(gè)底層實(shí)現(xiàn)庫(kù)。
2)slf4j-api-1.5.2.jar 這是Slf4j庫(kù)。
3)slf4j-log4j12-1.5.2.jar 這包含Log4j的適配器和靜態(tài)綁定log4j底層實(shí)現(xiàn)。
4)jcl-over-slf4j-1.5.2.jar 這提供了Commons-Logging接口,以及使用common-loggin的接口,底層還是由SLF4J來(lái)決定哪種實(shí)現(xiàn)機(jī)制 。

這里,我們需要使用Log4j的原生庫(kù),但是不需要Commons-Logging的原生庫(kù)。
OK,把上面這4個(gè)jar包復(fù)制到lib下,導(dǎo)入項(xiàng)目中,就可以像以往一樣繼續(xù)使用Apache Common-Logging編寫(xiě)日志了。
如果你喜歡使用slf4j的門(mén)面類(lèi),或者非log4j的日志實(shí)現(xiàn)庫(kù)。只需要像上面把需要的jar包扔進(jìn)自己的項(xiàng)目即可!

項(xiàng)目日志系統(tǒng)將會(huì)扔掉commons-logging和log4j,使用SLF4J全面接管,無(wú)障礙遷移。
優(yōu)點(diǎn):

  • 超超超低依賴(lài)性
  • 透明切換不同是日志實(shí)現(xiàn)方式
  • 編譯器綁定底層實(shí)現(xiàn)的方式,不會(huì)有classloader問(wèn)題
  • 性能更佳
  • 已經(jīng)Hibernate、Jetty、Spring-OSGi、Tapestry等項(xiàng)目中使用
  • 完善又免費(fèi)的文檔

各個(gè)jar包功能:

  • slf4j-api-1.4.3.jar - 一定是要的,直接支持logback實(shí)現(xiàn)
  • jcl104-over-slf4j-1.4.3.jar - 使用common-loggin的接口,底層還是由SLF4J來(lái)決定哪種實(shí)現(xiàn)機(jī)制
  • slf4j-jcl-1.4.3.jar - 使用SLF4J的接口,底層由common-loggin實(shí)現(xiàn)(不能和jcl104-over-slf4j-1.4.3.jar同時(shí)使用)
  • slf4j-log4j12-1.4.3.jar - 使用SLF4J的接口,底層由log4j實(shí)現(xiàn)
  • slf4j-jdk14-1.4.3.jar - 使用SLF4J的接口,底層由java自身的日志系統(tǒng)實(shí)現(xiàn)

語(yǔ)法:

1234567891011
import org.slf4j.Logger;import org.slf4j.LoggerFactory; public class Test {    final Logger logger = LoggerFactory.getLogger(Test.class);     public void hi() {        // 不再需要log.isDebugalbe(),代碼更簡(jiǎn)潔        logger.debug("hello {}", "amsz");    }}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
log4j的有關(guān)jar包總結(jié)
Java日志框架:SLF4J, Apache Common
slf4j的包使用說(shuō)明
mybatis – MyBatis 3(日志相關(guān),還比較清楚)
Java常用日志框架介紹
Java日志框架梳理-Java日志框架總覽
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服