Spring Boot 揭祕與實戰(三) 日誌框架篇 – 如何快速整合日誌系統

樑桂釗發表於2019-03-01

Java 有很多日誌系統,例如,Java Util Logging, Log4J, Log4J2, Logback 等。Spring Boot 也提供了不同的選項,比如日誌框架可以用 logback 或 log4j 等。
原文地址:Spring Boot 揭祕與實戰(三) 日誌框架篇 – 如何快速整合日誌系統
部落格地址:blog.720ui.com/

預設的日誌框架 logback

例如,maven 依賴中新增了 spring-boot-starter-logging。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</dependency>複製程式碼

那麼, Spring Boot 應用將自動使用 logback 作為應用日誌框架, Spring Boot 啟動的時候,由 org.springframework.boot.logging.Logging.Logging-Application-Listener 根據情況初始化並使用。

值得注意的是,預設情況下,Spring Boot 使用 logback 作為應用日誌框架。因為 spring-boot-starter 其中包含了 spring-boot-starter-logging,該依賴內容就是 Spring Boot 預設的日誌框架 logback。

Spring Boot 揭祕與實戰(三) 日誌框架篇 – 如何快速整合日誌系統

日誌級別

預設情況下,Spring Boot 配置 ERROR, WARN, INFO 三種日誌級別。如果需要 Debug 級別的日誌。在 src/main/resources/application.properties 中配置資料來源資訊。

debug=true複製程式碼

此外,配置 logging.level.* 來具體輸出哪些包的日誌級別。

例如

logging.level.root=INFO
logging.level.org.springframework.web=DEBUG複製程式碼

日誌檔案

預設情況下, Spring Boot 日誌只會輸出到控制檯,並不會寫入到日誌檔案,因此,對於正式環境的應用,我們需要通過在 application.properites 檔案中配置 logging.file 檔名稱和 logging.path 檔案路徑,將日誌輸出到日誌檔案中。

logging.path = /var/tmp
logging.file = xxx.log
logging.level.root = info複製程式碼

如果只配置 logging.path,在 /var/tmp資料夾生成一個日誌檔案為 spring.log。如果只配置 logging.file,會在專案的當前路徑下生成一個 xxx.log 日誌檔案。

值得注意的是,日誌檔案會在 10MB 大小的時候被截斷,產生新的日誌檔案。

常用的日誌框架 log4j

如果,我們希望使用 log4j 或者 log4j2,我們可以採用類似的方式將它們對應的依賴模組加到 Maven 依賴中。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>複製程式碼

或者

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>複製程式碼

log4j 依賴模組加到 Maven 依賴中後,在 src/main/resources 目錄下加入 log4j-spring.properties 配置檔案。Spring Boot 官方推薦優先使用帶有 –spring 的檔名作為你的日誌配置, 例如 log4j-spring.properties,當然使用 log4j.properties 也是支援的。

現在,我們就可以使用 log4j 日誌進行配置使用。log4j 配置細節就不展開講解了,對於更多log4j的用法,可以參考相關文獻。

原始碼

相關示例完整程式碼: springboot-action

(完)

更多精彩文章,盡在「服務端思維」微信公眾號!

Spring Boot 揭祕與實戰(三) 日誌框架篇 – 如何快速整合日誌系統

相關文章