日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

SpringBoot_日志-slf4j使用原理

發(fā)布時(shí)間:2024/4/13 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot_日志-slf4j使用原理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前面我們既然選擇了SLF4J,和logback的組合方式,那么我們系統(tǒng)里面如何使用slf4j呢,首先我們明確一點(diǎn)的就是,我們開(kāi)發(fā)的時(shí)候,日志記錄如果我們要調(diào)方法,日志方法的調(diào)用,我們不應(yīng)該調(diào)日志的實(shí)現(xiàn)類,應(yīng)該調(diào)抽象層,不應(yīng)該直接調(diào)用日志的實(shí)現(xiàn)類,而是調(diào)用日志抽象層的方法,只要你調(diào)用日志實(shí)現(xiàn)層里的方法,它自動(dòng)實(shí)現(xiàn)使用我們的日志,所以我們想這么來(lái)做,那slf4j怎么用呢,可以來(lái)到slf4j的官方文檔,我們?nèi)绾卧谝粋€(gè)系統(tǒng)用它https://www.slf4j.org/我們來(lái)看主頁(yè),這里有一個(gè)用戶手冊(cè),點(diǎn)擊來(lái)Before you start using SLF4J, we highly recommend that you read the two-page SLF4J user manual.以后我們要日志記錄非常簡(jiǎn)單,import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class HelloWorld {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger(HelloWorld.class);logger.info("Hello World");} }這里有一段代碼我復(fù)制過(guò)來(lái),我們以后要日志記錄,首先要給系統(tǒng)里邊導(dǎo)入slf4j的jar包,和logback的實(shí)現(xiàn)jar,如果調(diào)代碼怎么調(diào)呢,人家就有示例,調(diào)用slf4j的LoggerFactory,我們抽象層的,獲取記錄器的東西,你傳一個(gè)類別,logger.info就可以記錄一些信息了,可以打印到控制臺(tái),也可以輸出到文件,以后要調(diào)用就這么來(lái)調(diào),但是我們默認(rèn)使用的是logback的實(shí)現(xiàn),如果你想要用其他實(shí)現(xiàn)也行,畢竟slf4j是一個(gè)抽象層,實(shí)現(xiàn)用什么都行

slf4j的實(shí)現(xiàn),這里有一張圖,我們只要看清這張圖就行了

如果說(shuō)我們?cè)谖覀兊膽?yīng)用里邊,我們只到了slf4j的jar包,slf4j的具體jar包是slf4j-api.jar,我們只導(dǎo)入了這個(gè)jar,它是淺藍(lán)顏色,它是一個(gè)日志的抽象層,如果我們系統(tǒng)中只導(dǎo)入了slf4j,我們要進(jìn)行日志的記錄,LoggerFactory來(lái)進(jìn)行日志記錄,那么就會(huì)輸出到一個(gè)空的位置,因?yàn)槲覀儧](méi)有任何的實(shí)現(xiàn),而我們正確的用法呢,應(yīng)該是這個(gè)樣子,我的應(yīng)用程序,面向slf4j編程,調(diào)用它的方法進(jìn)行日志記錄,而我們?cè)诔绦蚶锩?也導(dǎo)了日志的實(shí)現(xiàn),logback這些jar包,我們導(dǎo)了他以后呢,調(diào)用的是這個(gè)接口,但是logback會(huì)進(jìn)行實(shí)現(xiàn),真正的將日志記錄到文件,記錄到控制臺(tái),這是我們?nèi)绻鹲lf4j如果要用logback,就要這么來(lái)用,只需要導(dǎo)入slf4j和logback的jar就行了,但是如果slf4j要綁定log4j,log4j出現(xiàn)的比較早,就根本沒(méi)有想到會(huì)有slf4j這回事,因?yàn)楹竺娴牟粩鄶U(kuò)展以后,才想出了這個(gè)統(tǒng)一抽象層,所以我們按照這個(gè)原理,我們應(yīng)用程序還是調(diào)用統(tǒng)一抽象層,我們調(diào)用這個(gè)抽象層,slf4j的API,但是log4j根本沒(méi)有考慮到slf4j這回事,那怎么辦呢,我們需要中間的一個(gè)適配層,這個(gè)適配層就相當(dāng)于,上邊實(shí)現(xiàn)了slf4j的具體方法,而在里面真正日志記錄的時(shí)候,又掉了log4j的API,上有老下有小的感覺(jué),然后中間的適配層,我們把它導(dǎo)入進(jìn)來(lái),我們就能夠用log4j了,如果要用log4j,系統(tǒng)里面導(dǎo)入這幾個(gè)jar,slf4j的jar,slf4j來(lái)適配log4j的jar,還有l(wèi)og4j真正實(shí)現(xiàn)的jar,那么與此同理,你要調(diào)用其他日志的實(shí)現(xiàn),比如我們要調(diào)用javautil logging,調(diào)java util logging的話呢,他肯定也不考慮slf4j,所以我系統(tǒng)以后要編程,還是面向slf4j編程,但是我要把適配層,適配層上要實(shí)現(xiàn)slf4j,下要調(diào)用java util的方法,那我們就從slf4j到j(luò)ava util的實(shí)現(xiàn)了,那么slf4j也有一些默認(rèn)的實(shí)現(xiàn),如果我們導(dǎo)入slf4j-api.jar,就面向他編程了,我們只需要導(dǎo)入slf4j,簡(jiǎn)單的一些日志實(shí)現(xiàn),就直接能用,slf4j-nop.jar,沒(méi)有什么實(shí)現(xiàn)的操作包,他也是輸出到一個(gè)空的位置,slf4j要真正的來(lái)用就這么來(lái)用,這些深藍(lán)顏色的,都是我們的一些實(shí)現(xiàn),而這個(gè)綠顏色,都是我們中間的適配層,他來(lái)適配一些本來(lái)不認(rèn)識(shí)slf4j框架的,這些日志實(shí)現(xiàn),這些不管是實(shí)現(xiàn)層,特別是中間的適配層,這些也是slf4j官方為我們出品的,他來(lái)幫我們適配到其他層 我來(lái)給大家引入進(jìn)來(lái),大家在系統(tǒng)里面用slf4j,就是這么來(lái)用,但是我們還要補(bǔ)充一個(gè)問(wèn)題,什么問(wèn)題呢,就是我們每一個(gè)日志框架,每一個(gè)日志的實(shí)現(xiàn)框架,都有自己的配置文件,那如果我們使用了slf4j以后,我們配置文件寫什么,配置文件還是做成日志實(shí)現(xiàn)框架的配置文件,我們slf4j只提供一個(gè)統(tǒng)一的抽象層,然后你用他實(shí)現(xiàn)了,你就寫他的配置文件,畢竟實(shí)現(xiàn)類是他,該怎么走,他要根據(jù)他的配置文件,所以我們重要的是這個(gè),配置文件還是使用日志實(shí)現(xiàn)框架自身的配置文件

?

總結(jié)

以上是生活随笔為你收集整理的SpringBoot_日志-slf4j使用原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。