springboot日誌,springboot日誌配置
1.日誌
Spring Boot內部日誌系統使用的是Commons Logging,但開放底層的日誌實現。預設為會Java Util Logging, Log4J, Log4J2和Logback提供配置。每種情況下都會預先配置使用控制台輸出,也可以使用可選的檔案輸出。
預設情況下,如果你使用'Starter POMs',那麼就會使用Logback記錄日誌。為了確保那些使用Java Util Logging, Commons Logging, Log4J或SLF4J的依賴庫能夠正常工作,正確的Logback路由也被包含進來。
註:如果上面的列表看起來令人困惑,不要擔心,Java有很多可用的日誌架構。通常,你不需要改變日誌依賴,Spring Boot預設的就能很好的工作。
2.日誌格式
Spring Boot預設的日誌輸出格式如下:
2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization
2014-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet'
2014-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: '
輸出的節點(items)如下
1. 日期和時間 - 精確到毫秒,且易於排序。
2. 記錄層級 - ERROR, WARN, INFO, DEBUG 或 TRACE。
3. Process ID。
4. 一個用於區分實際日誌資訊開頭的---分隔字元。
5. 線程名 - 包括在方括弧中(控制台輸出可能會被截斷)。
6. 日誌名 - 通常是源class的類名(縮寫)。
7. 日誌資訊。
3.控制台輸出
預設的日誌配置會在寫日誌訊息時將它們回顯到控制台。預設,ERROR, WARN和INFO層級的訊息會被記錄
4.檔案輸出
預設情況下,Spring Boot只會將日誌記錄到控制台而不會寫進記錄檔。如果除了輸出到控制台你還想寫入到記錄檔,那你需要設定 logging.file 或 logging.path 屬性(例如在你的application.properties中)
下表顯示如何組合使用 logging.* :
記錄檔每達到10M就會被輪換(分割),和控制台一樣,預設記錄ERROR, WARN和INFO層級的資訊。
5.記錄層級
所有支援的日誌系統在Spring的Environment(例如在application.properties裡)都有通過'logging.level.*=LEVEL'('LEVEL'是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF中的一個)設定的記錄層級。
樣本:application.properties
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
6.自訂日誌配置
通過將適當的庫添加到classpath,可以啟用各種日誌系統。然後在classpath的根目錄(root)或通過Spring Environment的 logging.config 屬性指定的位置提供一個合適的設定檔來達到進一步的定製(注意由於日誌是在ApplicationContext被建立之前初始化的,所以不可能在Spring的@Configuration檔案中,通過@PropertySources控制日誌。系統屬性和平常的Spring Boot外部設定檔能正常工作)。根據你的日誌系統,下面的檔案會被載入:
為了協助定製一些其他的屬性,從Spring的Envrionment轉換到系統屬性:
所有支援的日誌系統在解析它們的設定檔時都能查詢系統屬性。具體可以參考spring-boot.jar中的預設配置。
註:在運行可執行檔jar時,Java Util Logging有類載入問題,我們建議你儘可能避免使用它。