第十二章:SpringBoot使用LogBack作為日志組件

企業(yè)級(jí)項(xiàng)目在搭建的時(shí)候,最不可或缺的一部分就是日志剂碴,日志可以用來(lái)調(diào)試程序阳柔,打印運(yùn)行日志以及錯(cuò)誤信息方便于我們后期對(duì)系統(tǒng)的維護(hù),在SpringBoot興起之前記錄日志最出色的莫過(guò)于log4j了舀患,對(duì)于目前來(lái)說(shuō)項(xiàng)目還有很多在用log4j來(lái)記錄日志徽级。那么我們的SpringBoot是怎么記錄日志的?

SpringBoot內(nèi)部集成了LogBack日志依賴聊浅,SpringBoot默認(rèn)使用LogBack記錄日志信息餐抢,默認(rèn)根據(jù)base.xml配置內(nèi)容來(lái)輸出到控制臺(tái)和文件之中现使,那么接下來(lái)講解LogBack是如何記錄日志到控制和文件之中?

免費(fèi)專題文章匯總

恒宇少年在博客整理出來(lái)了SpringBoot旷痕、ApiBoot碳锈、SpringCloud的文章匯總【SpringBoot基礎(chǔ)教程專題】,【SpringCloud基礎(chǔ)教程專題】欺抗,【ApiBoot組件使用專題

本章目標(biāo)

學(xué)習(xí)SpringBoot項(xiàng)目中使用LogBack記錄日志到控制臺(tái)和文件之中售碳,根據(jù)不同的級(jí)別輸出不同形式日志信息。

構(gòu)建項(xiàng)目

因?yàn)镾pringBoot內(nèi)部集成了LogBack所以我們不需要添加任何依賴绞呈,我們只需要?jiǎng)?chuàng)建一個(gè)新的空項(xiàng)目即可贸人。如下圖1所示:

圖1

我們創(chuàng)建項(xiàng)目是選擇的WAR類型,所以自動(dòng)添加了WEB佃声、Tomcat艺智。這個(gè)對(duì)我們的講解無(wú)關(guān)緊要,因?yàn)?b>SpringBoot有默認(rèn)的配置所以我們并不需要添加任何操作圾亏,現(xiàn)在日志就可以在控制臺(tái)打印了力惯,為了證實(shí)這一點(diǎn),我們先來(lái)創(chuàng)建一個(gè)IndexController然后添加一個(gè)訪問(wèn)方法/index召嘶,在該方法內(nèi)添加日志的info級(jí)別的打痈妇А(默認(rèn)配置只有Info及以上級(jí)別才可以輸出),代碼如下圖2所示:

圖2

下面我們來(lái)啟動(dòng)項(xiàng)目弄跌,訪問(wèn)地址127.0.0.1:8080/index甲喝,查看控制臺(tái)的輸出效果,如下圖3所示:

圖3

我們?cè)L問(wèn)地址后铛只,控制臺(tái)就對(duì)應(yīng)的輸出了info級(jí)別的測(cè)試日志內(nèi)容了埠胖,上面我們說(shuō)了這是logback的默認(rèn)配置base.xml搞的鬼,那么我們?cè)撊绾涡薷哪J(rèn)配置呢淳玩?

修改LogBack配置

LogBack讀取配置文件的步驟
(1)嘗試classpath下查找文件logback-test.xml
(2)如果文件不存在直撤,嘗試查找logback.xml
(3)如果兩個(gè)文件都不存在,LogBack用BasicConfiguration自動(dòng)對(duì)自己進(jìn)行最小化配置蜕着,這樣既實(shí)現(xiàn)了上面我們不需要添加任何配置就可以輸出到控制臺(tái)日志信息谋竖。

接下來(lái)我們?cè)?b>resources目錄下創(chuàng)建名叫logback.xml的文件,并且添加日志配置輸出到文件內(nèi)按天存儲(chǔ)到不同的文件之中承匣。具體配置如下圖4所示:

圖4

我們?cè)趌ogback.xml配置文件中蓖乘,添加了控制臺(tái)輸出、文件每天輸出韧骗、日志文件最大上限嘉抒、日志的最低級(jí)別等。下面我們來(lái)運(yùn)行下項(xiàng)目查看我們的配置是否起作用了袍暴。

測(cè)試LogBack

修改我們的IndexController內(nèi)的index方法并添加多個(gè)日志級(jí)別的輸出些侍,為了方便對(duì)照我們的配置是否生效隶症,如下圖5所示:

圖5

我們logback.xml配置文件配置了根輸出等級(jí)是INFO,所以如果logback.xml生效岗宣,那么我們的控制臺(tái)以及文件內(nèi)將不會(huì)存在Debug級(jí)別的日志輸出蚂会,我們重啟下項(xiàng)目,訪問(wèn)之前的地址/index查看控制臺(tái)以及/logs/runtime.xxxx.log配置文件內(nèi)容狈定,如下圖6颂龙、7所示:

圖6
圖7

可以看到正如我們的推測(cè)的一般习蓬,Debug級(jí)別的日志沒(méi)有輸出纽什,只有INFO以及ERROR級(jí)別日志打印并輸出到文件中。我們配置的./logs作為日志的輸出根目錄躲叼,所以LogBack自動(dòng)在我們的項(xiàng)目根目錄下創(chuàng)建名叫做logs的文件夾芦缰,并且項(xiàng)目啟動(dòng)時(shí)第一次記錄日志時(shí)會(huì)自動(dòng)創(chuàng)建根據(jù)我們的命名方式的文件。

屏蔽記錄日志

如果我們?cè)陧?xiàng)目中需要屏蔽某個(gè)或者多個(gè)包下不輸出日志也不記錄日志到文件內(nèi)枫慷,那么我們需要修改application.yml添加對(duì)應(yīng)配置让蕾,如下圖8所示:

圖8

可以看到我們屏蔽了com.yuqiyu.chapter12.controller包下的日志打印,為了方便測(cè)試我們?cè)?b>com.yuqiyu.chapter12包下創(chuàng)建一個(gè)名叫TestController的控制器并復(fù)制IndexController的沒(méi)內(nèi)容如下圖9所示:

圖9

我們?cè)賮?lái)重啟下項(xiàng)目或听,訪問(wèn)127.0.0.1:8080/index地址后再查看下控制臺(tái)以及日志文件內(nèi)是否存在日志信息探孝,如下圖10所示:

圖10

控制臺(tái)并沒(méi)有打印任何的日志,日志文件中也是如此誉裆!我們?cè)賮?lái)訪問(wèn)下127.0.0.1:8080/test地址顿颅,查看控制臺(tái)以及日志文件內(nèi)容,如下圖11足丢、12所示:

圖11
圖12

可以看到成功打印了日志粱腻,證明了我們的配置已經(jīng)生效了。當(dāng)然也可以改變某個(gè)包下的日志輸出等級(jí)斩跌,只需要將'OFF'改成對(duì)應(yīng)等級(jí)即可绍些。

注意

在application.yml配置文件內(nèi),off必須添加雙引號(hào)耀鸦,否則不會(huì)生效柬批。

總結(jié)

以上內(nèi)容就是有關(guān)LogBack配置相關(guān)講解,本章主要講解了SpringBoot如何使用內(nèi)置的日志組件完成日志的輸出袖订、日志保存到文件萝快、控制日志輸出等。

本章內(nèi)容已經(jīng)上傳到碼云:

SpringBoot配套源碼地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源碼地址:https://gitee.com/hengboy/spring-cloud-chapter

SpringBoot相關(guān)系列文章請(qǐng)?jiān)L問(wèn):目錄:SpringBoot學(xué)習(xí)目錄

QueryDSL相關(guān)系列文章請(qǐng)?jiān)L問(wèn):QueryDSL通用查詢框架學(xué)習(xí)目錄

SpringDataJPA相關(guān)系列文章請(qǐng)?jiān)L問(wèn):目錄:SpringDataJPA學(xué)習(xí)目錄

SpringBoot相關(guān)文章請(qǐng)?jiān)L問(wèn):目錄:SpringBoot學(xué)習(xí)目錄著角,感謝閱讀揪漩!

歡迎微信掃碼加入知識(shí)星球,恒宇少年帶你走以后的技術(shù)道路@艨凇Q偃荨冰更!

知識(shí)星球 - 恒宇少年

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市昂勒,隨后出現(xiàn)的幾起案子蜀细,更是在濱河造成了極大的恐慌,老刑警劉巖戈盈,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奠衔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡塘娶,警方通過(guò)查閱死者的電腦和手機(jī)归斤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)刁岸,“玉大人脏里,你說(shuō)我怎么就攤上這事『缡铮” “怎么了迫横?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)酝碳。 經(jīng)常有香客問(wèn)我矾踱,道長(zhǎng),這世上最難降的妖魔是什么疏哗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任呛讲,我火速辦了婚禮,結(jié)果婚禮上沃斤,老公的妹妹穿的比我還像新娘圣蝎。我一直安慰自己,他們只是感情好衡瓶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布徘公。 她就那樣靜靜地躺著,像睡著了一般哮针。 火紅的嫁衣襯著肌膚如雪关面。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,729評(píng)論 1 289
  • 那天十厢,我揣著相機(jī)與錄音等太,去河邊找鬼。 笑死蛮放,一個(gè)胖子當(dāng)著我的面吹牛缩抡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播包颁,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瞻想,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼压真!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蘑险,我...
    開(kāi)封第一講書(shū)人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤滴肿,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后佃迄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體泼差,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年呵俏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堆缘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡柴信,死狀恐怖套啤,靈堂內(nèi)的尸體忽然破棺而出宽气,到底是詐尸還是另有隱情随常,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布萄涯,位于F島的核電站绪氛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涝影。R本人自食惡果不足惜枣察,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望燃逻。 院中可真熱鬧序目,春花似錦、人聲如沸伯襟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)姆怪。三九已至叛赚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稽揭,已是汗流浹背俺附。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溪掀,地道東北人事镣。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像揪胃,于是被迫代替她去往敵國(guó)和親璃哟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子唠叛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容