
- Spring Boot 教程
- Spring Boot - 首頁
- Spring Boot - 簡介
- Spring Boot - 快速入門
- Spring Boot - 引導
- Spring Tool Suite
- Spring Boot - Tomcat 部署
- Spring Boot - 構建系統
- Spring Boot - 程式碼結構
- Spring Bean & 依賴注入
- Spring Boot - 執行器
- Spring Boot - 啟動器
- Spring Boot - 應用程式屬性
- Spring Boot - 配置
- Spring Boot - 註解
- Spring Boot - 日誌記錄
- 構建 RESTful Web 服務
- Spring Boot - 異常處理
- Spring Boot - 攔截器
- Spring Boot - Servlet 過濾器
- Spring Boot - Tomcat 埠號
- Spring Boot - Rest Template
- Spring Boot - 檔案處理
- Spring Boot - 服務元件
- Spring Boot - Thymeleaf
- 使用 RESTful Web 服務
- Spring Boot - CORS 支援
- Spring Boot - 國際化
- Spring Boot - 排程
- Spring Boot - 啟用 HTTPS
- Spring Boot - Eureka 伺服器
- 使用 Eureka 進行服務註冊
- 閘道器代理伺服器和路由
- Spring Cloud 配置伺服器
- Spring Cloud 配置客戶端
- Spring Boot - Actuator
- Spring Boot - Admin 伺服器
- Spring Boot - Admin 客戶端
- Spring Boot - 啟用 Swagger2
- Spring Boot - 使用 SpringDoc OpenAPI
- Spring Boot - 建立 Docker 映象
- 追蹤微服務日誌
- Spring Boot - Flyway 資料庫
- Spring Boot - 傳送郵件
- Spring Boot - Hystrix
- Spring Boot - WebSocket
- Spring Boot - 批處理服務
- Spring Boot - Apache Kafka
- Spring Boot - Twilio
- Spring Boot - 單元測試用例
- Rest Controller 單元測試
- Spring Boot - 資料庫處理
- 保護 Web 應用程式
- Spring Boot - 使用 JWT 的 OAuth2
- Spring Boot - Google Cloud Platform
- Spring Boot - Google OAuth2 登入
- Spring Boot 資源
- Spring Boot - 快速指南
- Spring Boot - 有用資源
- Spring Boot - 討論
Spring Boot - 日誌記錄
Spring Boot 使用 Apache Commons logging 進行所有內部日誌記錄。Spring Boot 的預設配置提供對 Java Util Logging、Log4j2 和 Logback 的支援。使用這些,我們可以配置控制檯日誌記錄以及檔案日誌記錄。
如果您使用的是 Spring Boot 啟動器,Logback 將提供良好的日誌記錄支援。此外,Logback 還提供對 Common Logging、Util Logging、Log4J 和 SLF4J 的良好支援。
日誌格式
預設的 Spring Boot 日誌格式如下所示
[2m2024-09-04T12:08:38.842+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 980 ms [2m2024-09-04T12:08:39.185+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat started on port 8080 (http) with context path '/' [2m2024-09-04T12:08:39.192+05:30[0;39m [32m INFO[0;39m [35m16908[0;39m [2m---[0;39m [2m[demo] [ main][0;39m [2m[0;39m[36mc.tutorialspoint.demo.DemoApplication [0;39m [2m:[0;39m Started DemoApplication in 1.844 seconds (process running for 2.693)
它提供以下資訊:
日期和時間,顯示日誌的日期和時間
日誌級別顯示 INFO、ERROR 或 WARN
程序 ID
--- 分隔符
執行緒名稱用方括號 [] 括起來
記錄器名稱顯示源類名
日誌訊息
控制檯日誌輸出
預設的日誌訊息將列印到控制檯視窗。預設情況下,“INFO”、“ERROR”和“WARN”日誌訊息將列印到日誌檔案中。
如果您需要啟用除錯級別日誌,請使用以下命令在啟動應用程式時新增除錯標誌:
java –jar demo.jar --debug
您也可以將除錯模式新增到您的 application.properties 檔案中,如下所示:
debug = true
檔案日誌輸出
預設情況下,所有日誌都將列印到控制檯視窗,而不是檔案中。如果您想將日誌列印到檔案中,則需要在 application.properties 檔案中設定屬性logging.file 或logging.path。
您可以使用以下屬性指定日誌檔案路徑。請注意,日誌檔名是 spring.log。
logging.path = /var/tmp/
您可以使用以下屬性指定您自己的日誌檔名:
logging.file = /var/tmp/mylog.log
注意 - 檔案將在達到 10 MB 大小時自動輪轉。
日誌級別
Spring Boot 支援所有日誌級別,例如“TRACE”、“DEBUG”、“INFO”、“WARN”、“ERROR”、“FATAL”、“OFF”。您可以在 application.properties 檔案中定義根記錄器,如下所示:
logging.level.root = WARN
注意 - Logback 不支援“FATAL”級別日誌。它被對映到“ERROR”級別日誌。
配置 Logback
Logback 支援基於 XML 的配置來處理 Spring Boot 日誌配置。日誌配置詳細資訊在logback.xml檔案中配置。logback.xml 檔案應該放在類路徑下。
您可以使用以下程式碼在 Logback.xml 檔案中配置 ROOT 級別日誌:
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <root level = "INFO"> </root> </configuration>
您可以使用以下程式碼在 Logback.xml 檔案中配置控制檯附加程式。
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender> <root level = "INFO"> <appender-ref ref = "STDOUT"/> </root> </configuration>
您可以使用以下程式碼在 Logback.xml 檔案中配置檔案附加程式。請注意,您需要在檔案附加程式中指定日誌檔案路徑。
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "FILE" class = "ch.qos.logback.core.FileAppender"> <File>/var/tmp/mylog.log</File> </appender> <root level = "INFO"> <appender-ref ref = "FILE"/> </root> </configuration>
您可以使用以下程式碼在logback.xml檔案中定義日誌模式。您也可以在控制檯或檔案日誌附加程式中定義一組支援的日誌模式:
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
完整的 logback.xml 檔案程式碼如下所示。您必須將其放在類路徑中。
logback.xml
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern> </encoder> </appender> <appender name = "FILE" class = "ch.qos.logback.core.FileAppender"> <File>/var/tmp/mylog.log</File> <encoder> <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern> </encoder> </appender> <root level = "INFO"> <appender-ref ref = "FILE"/> <appender-ref ref = "STDOUT"/> </root> </configuration>
以下程式碼顯示如何在 Spring Boot 主類檔案中新增 slf4j 記錄器。
package com.tutorialspoint.demo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class); public static void main(String[] args) { logger.info("this is a info message"); logger.warn("this is a warn message"); logger.error("this is a error message"); SpringApplication.run(DemoApplication.class, args); } }
您可以在控制檯視窗中看到的輸出如下所示:
[2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [13] [INFO ] this is a info message [2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [14] [WARN ] this is a warn message [2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [15] [ERROR] this is a error message
您可以在日誌檔案中看到的輸出如下所示:
[2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [13] [INFO ] this is a info message [2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [14] [WARN ] this is a warn message [2024-09-04T12:30:28Z] [com.tutorialspoint.demo.DemoApplication] [main] [15] [ERROR] this is a error message