04.SpringBoot的日志配置詳解

一:本課程目標(biāo):

學(xué)習(xí)springboot日志的框架,學(xué)完后會(huì)設(shè)置日志級(jí)別半开、設(shè)置日志的存儲(chǔ)路徑隔披、設(shè)置日志的格式等等。

二:剖析springboot的日志框架

image

從上圖可以分析出springboot的底層框架是spring-boot-starter-logging

spring-boot-starter-logging由依賴了3個(gè)log框架,分別為slf4j寂拆、logback奢米、log4j.

分析1:slf4j纠永、logback鬓长、log4j的區(qū)別?

1.logback尝江、log4j:是日志框架涉波,就是實(shí)現(xiàn)怎么記錄日志的。

2.slf4j:提供了Java中所有日志框架的簡(jiǎn)單抽象(日志的門面設(shè)計(jì)模式)炭序,說(shuō)白一點(diǎn)就是一個(gè)日志API(沒(méi)有實(shí)現(xiàn)類),它不能單獨(dú)使用啤覆;故,必須結(jié)合logback或log4j日志框架惭聂。

分析2:Spring Boot 的日志搭配

Spring Boot 2.x 默認(rèn)采用了slf4j+logback的日志搭配窗声。

在開(kāi)發(fā)的過(guò)程中,我們都是采用slf4j的api去記錄日志彼妻,底層的實(shí)現(xiàn)就是根據(jù)配置logback或log4j日志框架

三:寫個(gè)測(cè)試類體驗(yàn)下日志

@RestController
public class LogController {

    private static final Logger logger = LoggerFactory.getLogger(LogController.class);
    
    @RequestMapping("/log")
    public  void  log() {
        logger.trace("-----------trace-------------");
        logger.debug("-----------debug-------------");
        logger.info("-----------info-------------");
        logger.warn("-----------warn-------------");
        logger.error("-----------error-------------");

    }
}

瀏覽器中訪問(wèn)路徑:http://127.0.0.1:9090/log

image

為什么控制臺(tái)的日志只輸出了info嫌佑、warn、error 侨歉?

因?yàn)镾pringBoot默認(rèn)是設(shè)置info級(jí)別屋摇。
要改變springboot的日志級(jí)別,只要在配置文件中加入以下內(nèi)容即可

logging.level.com.agan=trace

重新在瀏覽器中訪問(wèn)路徑:http://127.0.0.1:9090/log

image

四:配置日志生成的存儲(chǔ)路徑及日志名稱

在實(shí)際開(kāi)發(fā)過(guò)程中幽邓,我們不可能一直看著控制臺(tái)炮温,而且日質(zhì)量會(huì)很大,瞬間就丟失牵舵。
故柒啤,我們要把日志配置在指定的目錄下:

# 配置日志的文件夾路徑倦挂,按照默認(rèn)的名稱spring.log
# 以下配置的效果為:項(xiàng)目根目錄/output/logs/spring.log
logging.path=output/logs

# 如果不想要把日志存放在logging.path默認(rèn)的根目錄下,那就采用自定義日志的目錄和文件名
logging.file=/Volumes/data/logs/springboot.log

五:配置日志的內(nèi)容格式

先來(lái)看下担巩,默認(rèn)的日志格式是什么樣的方援?

2019-08-25 00:24:31.161 TRACE 10236 --- [nio-9090-exec-1] c.a.boot.log.controller.LogController    : -----------trace-------------
2019-08-25 00:24:31.161 DEBUG 10236 --- [nio-9090-exec-1] c.a.boot.log.controller.LogController    : -----------debug-------------
2019-08-25 00:24:31.161  INFO 10236 --- [nio-9090-exec-1] c.a.boot.log.controller.LogController    : -----------info-------------
2019-08-25 00:24:31.161  WARN 10236 --- [nio-9090-exec-1] c.a.boot.log.controller.LogController    : -----------warn-------------
2019-08-25 00:24:31.161 ERROR 10236 --- [nio-9090-exec-1] c.a.boot.log.controller.LogController    : -----------error-------------

更改日志的格式,更改語(yǔ)法如下:

%d-時(shí)間格式涛癌、%thread-線程犯戏、%-5level-日志級(jí)別,從左5字符寬度拳话、%logger{50}-日志50個(gè)字符先匪、%msg-信息、%n-換行

# %d-時(shí)間格式弃衍、%thread-線程呀非、%-5level-從左5字符寬度、%logger{50}-日志50個(gè)字符镜盯、%msg-信息岸裙、%n-換行
# 設(shè)置在控制臺(tái)輸出的日志格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} -%msg%n
# 設(shè)置輸出到文件的日志格式
logging.pattern.file=%d{yyyy/MM/dd} === [%thread] == %-5level == %logger{50} == %msg%n

更改后的輸出結(jié)果:

2019-08-25 [http-nio-9090-exec-1] TRACE com.agan.boot.log.controller.LogController ------------trace-------------
2019-08-25 [http-nio-9090-exec-1] DEBUG com.agan.boot.log.controller.LogController ------------debug-------------
2019-08-25 [http-nio-9090-exec-1] INFO  com.agan.boot.log.controller.LogController ------------info-------------
2019-08-25 [http-nio-9090-exec-1] WARN  com.agan.boot.log.controller.LogController ------------warn-------------
2019-08-25 [http-nio-9090-exec-1] ERROR com.agan.boot.log.controller.LogController ------------error-------------

六:課后練習(xí)

自己搭建一個(gè)springboot項(xiàng)目,實(shí)現(xiàn)以下2個(gè)功能:

1.用try...catch捕獲以下代碼異常

int i=0/9; 

把異常日志存儲(chǔ)在d:/log/springboot.log

2.參考以下的日志內(nèi)容,配置出日志格式

2019-08-25 TRACE c.a.b.l.c.LogController ------------trace-------------
2019-08-25 DEBUG c.a.b.l.c.LogController ------------debug-------------
2019-08-25 INFO  c.a.b.l.c.LogController ------------info-------------
2019-08-25 WARN  c.a.b.l.c.LogController ------------warn-------------
2019-08-25 ERROR c.a.b.l.c.LogController ------------error-------------

-----------------------------配套學(xué)習(xí)資料-----------------------------

  1. 課后練習(xí)作業(yè)請(qǐng)?zhí)峤坏絈Q群(1號(hào)QQ群3000人已滿形耗,請(qǐng)加2號(hào)群:985378659[群名:SpringBoot架構(gòu)師])
  2. 本課程配套免費(fèi)視頻教程
    https://study.163.com/course/introduction/1004576013.htm?share=1&shareId=1016481220
  3. 本課程配套源碼地址:https://github.com/agan-java/agan-boot
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哥桥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子激涤,更是在濱河造成了極大的恐慌拟糕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倦踢,死亡現(xiàn)場(chǎng)離奇詭異送滞,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)辱挥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門犁嗅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人晤碘,你說(shuō)我怎么就攤上這事褂微。” “怎么了园爷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵宠蚂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我童社,道長(zhǎng)求厕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮呀癣,結(jié)果婚禮上美浦,老公的妹妹穿的比我還像新娘。我一直安慰自己项栏,他們只是感情好浦辨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著忘嫉,像睡著了一般荤牍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庆冕,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音劈榨,去河邊找鬼访递。 笑死,一個(gè)胖子當(dāng)著我的面吹牛同辣,可吹牛的內(nèi)容都是我干的拷姿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼旱函,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼响巢!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起棒妨,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤踪古,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后券腔,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伏穆,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年纷纫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枕扫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辱魁,死狀恐怖烟瞧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情染簇,我是刑警寧澤参滴,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站剖笙,受9級(jí)特大地震影響卵洗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一过蹂、第九天 我趴在偏房一處隱蔽的房頂上張望十绑。 院中可真熱鬧,春花似錦酷勺、人聲如沸本橙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)甚亭。三九已至,卻和暖如春击胜,著一層夾襖步出監(jiān)牢的瞬間亏狰,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工偶摔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暇唾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓辰斋,卻偏偏與公主長(zhǎng)得像策州,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宫仗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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