Spring Boot 日誌

Spring Boot使用Apache的通用日誌接口Commons Logging作爲所有內部日誌記錄器,但是具體實現選擇不做要求,默認配置對java.util.Logging,Log4J2和Logback支持。每種日誌記錄器都默認預配置爲控制檯輸出,但輸出到文件亦可用。

通常情況下,如果你使用的是”starters”,LogBack爲默認日誌輸出工具,同時包含Logback routing以確保使用Java Util Logging,Common Logging,Log4J 或者 SLF4J的其他依賴庫能夠正常工作。

日誌輸出格式

Spring Boot默認的日誌輸出如下:

2017-09-07 15:46:51.112 INFO 45469 --- [           main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52
2017-09-07 15:46:51.112 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]      : Initializing Spring Embedded WebApplicationContext

輸出格式如下:

  • Date and Time:毫秒級的日期時間
  • Log Level:日誌輸出級別
  • Process ID:進程號
  • — :與真正日誌輸出的分隔
  • Thread name:線程名稱,以[]括起來部分
  • Logger name:日誌發生的類
  • Message:日誌信息

注:Logback沒有FATAL日誌級別,合併於ERROR。

控制檯輸出

Spring Boot默認配置將日誌打印在控制檯上,ERROR,WARN,INFO級別的日誌默認輸出。你也可以以debug模式啓動你的項目,如下:

$ java -jar myapp.jar --debug

注:也可以通過在application.properties文件中加入debug=true實現以debug模式啓動項目。

當以debug模式啓動時,核心日誌記錄器(內嵌的容器,Hibernate和Spring Boot)等會配置爲輸出更多的信息,但是以debug模式啓動並不意味着配置你的項目輸出所有DEBUG級別的日誌信息。

另外,Spring Boot支持高亮輸出,如在application.properties中添加如下內容:

spring.output.ansi.enabled=ALWAYS

文件輸出

默認情況下,Spring Boot只向控制檯輸出日誌,而不會在文件中記錄日誌,如果要將日誌記錄到文件中,需要設置logging.file或者logging.path屬性到application.properties文件中。

其中logging.file,用於指定日誌文件的名稱,在logging.path未指定時,可以是含(絕對或者相當當前文件的)路徑的文件名。反之,亦然。

輸出日誌到文件時,日誌文件默認最大10MB,同控制檯一樣默認輸出ERROR,WARN,INFO級別的日誌。

注:由於日誌系統在Spring Boot應用生命週期中初始化的早,配置在@PropertySource註解加載的文件中的日誌屬性是無效的。

日誌級別

所有被支持的日誌系統可以在Spring的環境變量中配置其日誌級別,如在application.properties文件中指定。

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR

訂製日誌配置

可以通過在classpath中包含對應的庫的方式激活對應的日誌系統,或者提供適當的配置文件進一步做日誌訂製。如果配置文件非classpath下,需通過logging.config屬性指定。

你可以強制Spring Boot使用某一種日誌系統,通過org.springframework.boot.logging.LoggingSystem屬性指定,指定的值需要爲class實現的全名,如果指定爲none,則爲禁用Spring Boot的全部日誌配置。

如果指定日誌系統爲Logback,對應配置文件可爲logback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy;如果指定日誌系統爲Log4j2,對應配置文件應爲log4j2-spring.xml,log4j2.xml;如果指定日誌系統爲Java Util Logging,對應配置文件爲logging.properties。

如果可能,推薦使用-spring格式日誌配置文件名,如命名爲logback-spring.xml而不是logback.xml。如果使用標準配置位置,Spring不能完全控制日誌系統的初始化。

關於日誌配置的幾個Spring環境變量:

  • logging.exception-conversion-word:用於記錄異常時用的轉換詞。
  • logging.file:如果指定,則做爲日誌配置的默認配置。
  • logging.path:如果指定,則做爲日誌配置的默認配置。
  • logging.pattern.console:指定輸出到控制檯的日誌格式,僅支持默認的logback配置。
發佈了42 篇原創文章 · 獲贊 10 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章