1. 程式人生 > >spring-boot-route(十六)使用logback生產日誌檔案

spring-boot-route(十六)使用logback生產日誌檔案

日誌是一個系統非常重要的一部分,我們經常需要通過檢視日誌來定位問題,今天我們一起來學習一下Spring Boot的日誌系統。有很多同學習慣性的在生產程式碼中使用System.out來輸出日誌,這是不推薦的一種做法,因為System.out是一個同步操作,會在一定程度上影響系統性能,而Logger是一個非同步操作。 Spring Boot預設的日誌系統是`logback`,當然我們並不需要去引用`logback`的依賴,因為在`spring-boot-starter`中已經應用了`logback`的依賴。 ### 一、控制檯日誌資訊介紹 ### 1.1 日誌級別 日誌級別從高到低為:`TRACE` < `DEBUG` < `INFO` < `WARN` < `ERROR` < `ALL` < `OFF`。 如果日誌設定為`ERROR`,那麼低於`ERROR`級別的日誌將不會輸出。 如果我們想要設定某個包的日誌級別,則在pom檔案中加入下面這行配置: ```yml logging: level: # 包名 com.javatrip: warn ``` 如果想修改Spring Boot預設級別,則將包名改為`root`。 ```java logging: level: root: warn ``` ### 1.2 控制檯日誌介紹 預設情況下,Spring Boot會將`INFO`級別的日誌輸出到控制檯。控制檯輸出資訊如下: ![](https://img2020.cnblogs.com/blog/1719198/202010/1719198-20201015122926310-1633858213.png) 日誌輸出內容具體含義如下: - 時間日期:精確到毫秒 - 日誌級別:ERROR, WARN, INFO, DEBUG or TRACE - 程序ID - 分隔符:`---` 標識實際日誌的開始 - 執行緒名:方括號括起來(可能會截斷控制檯輸出) - Logger名:通常使用原始碼的類名 - 日誌內容 ## 二、日誌檔案輸出 在實際專案中,我們需要將日誌輸出為檔案,以便快速定位問題。Spring Boot關於日誌檔案的資訊可以參考官網`https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-logging`。 > Because the standard `logback.xml` configuration file is loaded too early, you cannot use extensions in it. You need to either use `logback-spring.xml` or define a `logging.config` property. 這句話的意思大概就是:由於標準的logback.xml配置檔案載入得太早,因此您不能在其中使用副檔名。您需要使用logback-spring.xml或定義logging.config屬性。 因此我們來定義一個`logback-spring.xml`的檔案來進行日誌資訊的配置。 `logback-spring.xml`檔案定義及註釋: ```xml ``` 啟動專案後,在`D:\log\dev`中會生產我們的日誌檔案`myLog.log`,加入我們系統一直執行,則在我們的檔案目錄下會生成一個`myLog.log`檔案和7個最近日誌的檔案`myLog-某年-某月-某日.log`。 此是spring-boot-route系列的第十六篇文章,這個系列的文章都比較簡單,主要目的就是為了幫助初次接觸Spring Boot 的同學有一個系統的認識。本文已收錄至我的[github](https://github.com/binzh303/spring-boot-route),歡迎各位小夥伴`star`! **github**:https://github.com/binzh303/spring-boot-route ## 點關注、不迷路 如果覺得文章不錯,歡迎**關注**、**點贊**、**收藏**,你們的支援是我創作的動力,感謝大家。 如果文章寫的有問題,請不要吝嗇,歡迎留言指出,我會及時核查修改。 如果你還想更加深入的瞭解我,可以微信搜尋「**Java旅途**」進行關注。回覆「**1024**」即可獲得學習視訊及精美電子書。每天7:30準時推送技術文章,讓你的上班路不在孤獨,而且每月還有送書活動,助你提升硬