Springboot配置logback

一观蓄、本文說明

因?yàn)閘ogback其他配置尚好理解混移,本文只說明比較少用,但是卻起關(guān)鍵作用的兩個(gè)子節(jié)點(diǎn)侮穿。


二歌径、基礎(chǔ)教學(xué)

1、依賴:

實(shí)際開發(fā)中我們不需要直接添加該依賴亲茅,你會(huì)發(fā)現(xiàn)spring-boot-starter其中包含了 spring-boot-starter-logging回铛,Spring Boot為我們提供了很多默認(rèn)的日志配置,所以克锣,只要將spring-boot-starter-logging作為依賴加入到當(dāng)前應(yīng)用的classpath茵肃,則“開箱即用”。

2袭祟、日記的等級(jí)

日志級(jí)別從低到高分為TRACE < DEBUG < INFO < WARN < ERROR < FATAL

3验残、配置

這里對(duì)日志框架的支持有兩種配置方式,一般來講我們倘若不是要較復(fù)雜的需求榕酒,可以直接在?application.yml?配置文件配置下即可:

application.properties 或 ?application.yml?(系統(tǒng)層面)

參考網(wǎng)站:https://www.cnblogs.com/nuccch/p/6221255.html

logback-spring.xml ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (自定義文件方式)

參考網(wǎng)站:http://tengj.top/2017/04/05/springboot7/

4胚膊、彩色打印

參考:https://my.oschina.net/360yg/blog/1810625

5、@Slf4j注解

安裝lombok插件想鹰,在需要打印的類名上加上該注解即可

替代下面語句的編寫

private Loggerlogger = LoggerFactory.getLogger(this.getClass());

6紊婉、打印不出json的問題

不是打印不出而是正確的要加一個(gè)占位符 {},如下

log.info("hospital{}", JSON.toJSONString(hospitalEntity2));

7辑舷、log存放文件路徑定義

三喻犁、特別注意的兩個(gè)配置<root>、<loger>

最關(guān)鍵的兩個(gè)節(jié)點(diǎn)何缓,你可以理解之前的property肢础、appender嵌套property只是一些定義好的變量,真正定義方法怎么去運(yùn)用這些變量是這兩個(gè)節(jié)點(diǎn)所要做的碌廓。

1传轰、子節(jié)點(diǎn)--<root>

root節(jié)點(diǎn)是必選節(jié)點(diǎn),用來指定最基礎(chǔ)的日志輸出級(jí)別谷婆,只有一個(gè)level屬性慨蛙,不區(qū)分大小寫辽聊,默認(rèn)是DEBUG。

可以包含零個(gè)或多個(gè)元素期贫,標(biāo)識(shí)這個(gè)appender將會(huì)添加到這個(gè)loger(理解root為一個(gè)全局的loger)跟匆。

舉例子:

上圖這是我定義好的文件輸出的appender節(jié)點(diǎn),對(duì)應(yīng)下圖的<appender-ref>節(jié)點(diǎn)通砍,ref對(duì)應(yīng)<appender>的name屬性玛臂,上面說到<root>節(jié)點(diǎn)好比一個(gè)方法,所以現(xiàn)在這個(gè)方法的意思是全局打印等級(jí)為INFO封孙,而且四個(gè)<appender>變量都執(zhí)行迹冤,即正常的控制臺(tái)輸出和warn、info敛瓷、error的三個(gè)文件輸出叁巨,可以到對(duì)應(yīng)的控制臺(tái)和日志文件里面看到的確有日志斑匪。反之倘若我們level定為Debug呐籽,或者去除name為“WARN”的<appender>則是輸出Debug以上等級(jí)的日志,WARN.log日志文件也不會(huì)再有日志打印進(jìn)去蚀瘸。

2狡蝶、子節(jié)點(diǎn)--<loger>

<loger>用來設(shè)置某一個(gè)包或者具體的某一個(gè)類的日志打印級(jí)別、以及指定<appender>贮勃,也就是只管轄指定的區(qū)域的日志輸出規(guī)則贪惹。<loger>僅有一個(gè)name屬性,一個(gè)可選的level和一個(gè)可選的addtivity屬性寂嘉。

注意:這里說的上級(jí)就是root節(jié)點(diǎn)

name:用來指定受此loger約束的某一個(gè)包或者具體的某一個(gè)類奏瞬。

level:用來設(shè)置打印級(jí)別,大小寫無關(guān):TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF泉孩,還有一個(gè)特俗值INHERITED或者同義詞NULL硼端,代表強(qiáng)制執(zhí)行上級(jí)的級(jí)別。如果未設(shè)置此屬性寓搬,那么當(dāng)前l(fā)oger將會(huì)繼承上級(jí)的級(jí)別珍昨。

addtivity:是否向上級(jí)loger傳遞打印信息。默認(rèn)是true句喷。

舉例子:

<logger name="com.dudu.controller.LearnController" level="WARN" additivity="false">

????????<appender-ref ref="console"/>

</logger>

控制com.dudu.controller.LearnController類的日志打印镣典,打印級(jí)別為“WARN”;

additivity屬性為false,表示此loger的打印信息不再向上級(jí)傳遞;

指定了名字為“console”的appender;

這時(shí)候執(zhí)行com.dudu.controller.LearnController類的login方法時(shí)唾琼,先執(zhí)行<logger name="com.dudu.controller.LearnController" level="WARN" additivity="false">,

將級(jí)別為“WARN”及大于“WARN”的日志信息交給此loger指定的名為“console”的appender處理兄春,在控制臺(tái)中打出日志,不再向上級(jí)root傳遞打印信息锡溯。

注意:

當(dāng)然如果你把a(bǔ)dditivity=”false”改成additivity=”true”的話赶舆,就會(huì)打印兩次肴裙,因?yàn)榇蛴⌒畔⑾蛏霞?jí)傳遞,logger本身打印一次涌乳,root接到后又打印一次蜻懦。

四、配合多環(huán)境

據(jù)不同環(huán)境(prod:生產(chǎn)環(huán)境夕晓,test:測試環(huán)境宛乃,dev:開發(fā)環(huán)境)來定義不同的日志輸出,在 logback-spring.xml中使用 springProfile 節(jié)點(diǎn)來定義蒸辆,方法如下:

文件名稱不是logback.xml征炼,想使用spring擴(kuò)展profile支持,要以logback-spring.xml命名


可以啟動(dòng)服務(wù)的時(shí)候指定 profile (如不指定使用默認(rèn))躬贡,如指定prod 的方式為:

java -jar xxx.jar –spring.profiles.active=prod

關(guān)于多環(huán)境配置可以參考

Spring Boot干貨系列:(二)配置文件解析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谆奥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拂玻,更是在濱河造成了極大的恐慌酸些,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檐蚜,死亡現(xiàn)場離奇詭異魄懂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)闯第,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門市栗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咳短,你說我怎么就攤上這事填帽。” “怎么了咙好?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵篡腌,是天一觀的道長。 經(jīng)常有香客問我敷扫,道長哀蘑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任葵第,我火速辦了婚禮绘迁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卒密。我一直安慰自己缀台,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布哮奇。 她就那樣靜靜地躺著膛腐,像睡著了一般睛约。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哲身,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天辩涝,我揣著相機(jī)與錄音,去河邊找鬼勘天。 笑死怔揩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的脯丝。 我是一名探鬼主播商膊,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼宠进!你這毒婦竟也來了晕拆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤材蹬,失蹤者是張志新(化名)和其女友劉穎实幕,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赚导,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茬缩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年赤惊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吼旧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡未舟,死狀恐怖圈暗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情裕膀,我是刑警寧澤员串,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站昼扛,受9級(jí)特大地震影響寸齐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抄谐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一渺鹦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛹含,春花似錦毅厚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祠锣。三九已至,卻和暖如春咽安,著一層夾襖步出監(jiān)牢的瞬間伴网,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國打工妆棒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留是偷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓募逞,卻偏偏與公主長得像蛋铆,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子放接,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345