Java日志組件間關(guān)系詳解
一、 總覽
本文章不對(duì)日志組件進(jìn)行優(yōu)劣評(píng)價(jià),只是對(duì)關(guān)系進(jìn)行對(duì)比。在日志中組件中存在這樣的幾種關(guān)系, 這幾種關(guān)系理解清楚, 有助于我們對(duì)日志的引入和使用。

二、 日志門面
日志門面就是指直接引入我們程序中進(jìn)行記錄日志的日志組件,作為日志門面的這些組件會(huì)在程序中直接依賴, 上圖中就列舉的幾種常見的日志門面的組件。像一些軟件直接回默認(rèn)使用一些組件, 比如Spring使用的就是commons-logging, activiti使用的日志門面就是slf4j, 其他的軟件也都會(huì)選用自己認(rèn)為好用的日志門面。
三、 日志實(shí)現(xiàn)
除了log4j既是門面又是實(shí)現(xiàn)之外, commons-logging和slf4j 都是能直接打印日志的, 都需要依賴一個(gè)日志實(shí)現(xiàn)來打印日志,上圖中也舉了幾個(gè)日志實(shí)現(xiàn)。
四、橋接方式
slf4j默認(rèn)和logback做了一些橋接的處理,那么橋接的作用是什么呢, 假如我想使用slf4j做為實(shí)現(xiàn)的門面,然而同時(shí)我想使用log4j作為真正的日志實(shí)現(xiàn),這個(gè)時(shí)候就需要slf4j-logrj12 jar包, 現(xiàn)在應(yīng)該可以理解橋接方式了。
五、 改變依賴
這里的作用是為了避免一些沖突, 例如在這樣的場(chǎng)景下,我們使用spring做為開發(fā),而我們開發(fā)的軟件要使用的是slf4j作為日志門面,這個(gè)時(shí)候因?yàn)镾pirng默認(rèn)使用的是commons-logging作為日志門面,這個(gè)時(shí)候就會(huì)發(fā)生一些沖突, 所以我們可以引入jcl-over-slf4j, 通過這個(gè)組件把commons-logging覆蓋掉, 為了把歷史軟件內(nèi)部的依賴覆蓋掉, 就可通過這個(gè)方式改變依賴。
相關(guān)文章
Java實(shí)現(xiàn)Linux下雙守護(hù)進(jìn)程
這篇文章主要介紹了Java實(shí)現(xiàn)Linux下雙守護(hù)進(jìn)程的思路、原理以及具體實(shí)現(xiàn)方式,非常的詳細(xì),希望對(duì)大家有所幫助2014-10-10
如何在SpringBoot中使用Spring-AOP實(shí)現(xiàn)接口鑒權(quán)
這篇文章主要介紹了如何在SpringBoot中使用Spring-AOP實(shí)現(xiàn)接口鑒權(quán),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-09-09
SpringMVC中的HandlerMapping和HandlerAdapter詳解
這篇文章主要介紹了SpringMVC中的HandlerMapping和HandlerAdapter詳解,在Spring MVC中,HandlerMapping(處理器映射器)用于確定請(qǐng)求處理器對(duì)象,請(qǐng)求處理器可以是任何對(duì)象,只要它們使用了@Controller注解或注解@RequestMapping,需要的朋友可以參考下2023-08-08
2020新版idea創(chuàng)建項(xiàng)目沒有javaEE 沒有Web選項(xiàng)的完美解決方法
這篇文章主要介紹了2020新版idea創(chuàng)建項(xiàng)目沒有javaEE 沒有Web選項(xiàng)的完美解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Java實(shí)現(xiàn)快速排序算法(Quicktsort)
這篇文章主要介紹了Java實(shí)現(xiàn)快速排序算法(Quicktsort),有需要的朋友可以參考一下2013-12-12

