Java 有不少日誌系統,例如,Java Util Logging, Log4J, Log4J2, Logback 等。Spring Boot 也提供了不一樣的選項,好比日誌框架能夠用 logback 或 log4j 等。web
例如,maven 依賴中添加了 spring-boot-starter-logging。spring
<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 根據狀況初始化並使用。apache
值得注意的是,默認狀況下,Spring Boot 使用 logback 做爲應用日誌框架。由於 spring-boot-starter 其中包含了 spring-boot-starter-logging,該依賴內容就是 Spring Boot 默認的日誌框架 logback。app
默認狀況下,Spring Boot 配置 ERROR, WARN, INFO 三種日誌級別。若是須要 Debug 級別的日誌。在 src/main/resources/application.properties 中配置數據源信息。框架
debug=true
此外,配置 logging.level.* 來具體輸出哪些包的日誌級別。maven
例如spring-boot
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 日誌文件。ui
值得注意的是,日誌文件會在 10MB 大小的時候被截斷,產生新的日誌文件。spa
若是,咱們但願使用 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 也是支持的。
經過以下配置,設定root日誌的輸出級別爲INFO,appender爲控制檯輸出stdout
# LOG4J配置 |
在開發環境,咱們只是輸出到控制檯沒有問題,可是到了生產或測試環境,或許持久化日誌內容,方便追溯問題緣由。能夠經過添加以下的appender內容,按天輸出到不一樣的文件中去,同時還須要爲log4j.rootCategory
添加名爲file的appender,這樣root日誌就能夠輸出到logs/all.log
文件中了。
# |
當咱們日誌量較多的時候,查找問題會很是困難,經常使用的手段就是對日誌進行分類,好比:
logs/my.log
的appender,並對com.didispace
包下的日誌級別設定爲DEBUG級別、appender設置爲輸出到logs/my.log
的名爲didifile
的appender。 # com.didispace包下的日誌配置 |
|