common.logging和log4j比较
apache?common?logging是一種log的框架接口,它本身并不實(shí)現(xiàn)log記錄的功能,而是在運(yùn)行時(shí)動(dòng)態(tài)查找目前存在的日志庫(kù),調(diào)用相關(guān)的日志函數(shù),從而隱藏具體的日志實(shí)現(xiàn)
log4j是具體的日志實(shí)現(xiàn),真正負(fù)責(zé)"寫(xiě)"日志的這個(gè)功能
common?logging本身不是log,你可以把它看做是一個(gè)日志的接口
而log4j就是日志的實(shí)現(xiàn)
使用common?logging方式實(shí)現(xiàn)日志,主要的原因在于可以忽略底層的日志實(shí)現(xiàn),或者說(shuō)為以后的日志實(shí)現(xiàn)庫(kù)的更換提供透明界面
你可以考慮下,假設(shè)從log4j更換為logback,勢(shì)必要重寫(xiě)所有原本使用log4j的源代碼,而使用common?logging的情況下,只需要更換jar包,而不需要對(duì)源代碼做任何改動(dòng)
?
?
做日志的時(shí)候一般是兩者一起用,commons-logging工作原理做接口,log4j做實(shí)現(xiàn),應(yīng)用起來(lái)比單獨(dú)的使用log4j要簡(jiǎn)單
commons-logging工作原理:
1.?首先在classpath下尋找自己的配置文件commons-logging.properties,如果找到,則使用其中定義的Log實(shí)現(xiàn)類(lèi)
2.?如果找不到commons-logging.properties文件,則在查找是否已定義系統(tǒng)環(huán)境變量org.apache.commons.logging.Log,找到則使用其定義的Log實(shí)現(xiàn)類(lèi)
3.?查看classpath中是否有Log4j的包,如果發(fā)現(xiàn),則自動(dòng)使用Log4j作為日志實(shí)現(xiàn)類(lèi)
4.?使用JDK自身的日志實(shí)現(xiàn)類(lèi)(JDK1.4以后才有日志實(shí)現(xiàn)類(lèi))
5.?使用commons-logging自己提供的一個(gè)簡(jiǎn)單的日志實(shí)現(xiàn)類(lèi)SimpleLog
(以上順序不保證完全準(zhǔn)確,請(qǐng)參考官方文檔)
commons-logging總是能找到一個(gè)日志實(shí)現(xiàn)類(lèi),并且盡可能找到一個(gè)"最合適"的日志實(shí)現(xiàn)類(lèi).?
轉(zhuǎn)載于:https://www.cnblogs.com/ihanliu/p/4682654.html
總結(jié)
以上是生活随笔為你收集整理的common.logging和log4j比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Uninstall Office 201
- 下一篇: hdu 3333 树状数组+离线处理