spring boot Logging的配置以及使用詳解,springlogging

來源:互聯網
上載者:User

spring boot Logging的配置以及使用詳解,springlogging

前言:該篇文章基本上是翻譯的官方文檔!

spring boot使用Commons Logging作為內部的日誌系統,並且給Java Util Logging,Log4J2以及Logback都提供了預設的配置。如果使用了spring boot的Starters,那麼預設會使用Logback用於記錄日誌。

一、Log format

spring boot中預設的日誌輸出格式如下:

2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : 
Starting Servlet Engine: Apache Tomcat/7.0.52 
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 completed in 1358 ms 
2014-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : 
Mapping servlet: 'dispatcherServlet' to [/] 
2014-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : 
Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 

以下項將會被輸出:

1、日期和時間--精確到毫秒,並按照時間進行簡單的排序
2、記錄層級--ERROR,WARN,INFO,DEBUG,TRACE
3、進程ID號
4、日誌內容,用"---"分隔字元分開
5、線程名字--括在方括弧中
6、日誌的名字--通常對應的是類名

注意:Logback沒有FATAL層級(映射到ERROR)

二、控制台輸出

預設的日誌配置將在寫入控制台時回顯訊息,預設會回顯ERROR,WARN,和INFO層級的訊息,你同樣可以在啟動的時候,啟用debug模式,啟動命令如下:java -jar yourapp.jar --debug

注意:你同樣可以在application.properties設定檔中指定debug=true,來開啟debug,模式一旦開啟了debug模式,那麼控制台同時會輸出容器資訊,hibernate資訊和spring boot的資訊

三、檔案輸出

預設情況下,spring boot只會將日誌輸出到console,而不會輸出到記錄檔中,如果你想將日誌寫到記錄檔中,那麼需要在application.properties設定檔中設定logging.file或者是logging.path

注意:此處是或者的關係,也就是說,你配置logging.file或者是logging.path,效果是一樣的。

下面的表格將顯示如何進行設定檔輸出:

logging.file logging.path Example 說明
      二者都不配置,則只輸出到Console
指定檔案   my.log 寫入指定的記錄檔。檔案名稱可以是一個確切的
位置或相對目錄
  指定的目錄 /var/log 將記錄檔寫入指定的目錄,目錄可以是一個確切的位置或者是一個相對目錄

預設情況下,如果記錄檔的大小達到10Mb的話,就會被截斷,輸出到新的記錄檔中。

注意:日誌的配置是獨立與實際的日誌組件的,也就是說,如果為Logback指定配置的屬性為logback.configurationFile,那麼spring boot將不會管理該日誌組件。

四、記錄層級

所有支援的日誌系統都可以通過Spring Environment來指定記錄層級,例如application.properties,可以使用“logging.level.*=LEVEL”來指定日誌的層級,"LEVEL"的取值可以是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF。配置樣本如下:

logging.level.root=WARN #root日誌以WARN層級輸出 logging.level.org.springframework.web=DEBUG #org.springframework.web包下的日誌以DEBUG層級輸出 logging.level.org.hibernate=ERROR #org.hibernate包下的日誌以ERROR層級輸出 

如果,我們需要指定我們的應用記錄層級了,我們也可以使用同樣的方式,如下:

logging.level.com.chhliu=INFO 

上面配置中的"com.chhliu"為我們應用的包名。

五、自訂日誌輸出格式

我們可以通過logging.pattern.file以及logging.pattern.level來配置我們需要的日誌輸出格式,例如:

logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n 

注意:以上配置,只對Logback起作用

六、使用Log4j打日誌

前面說道,我們預設的是使用Logback來作為日誌系統的,那麼,如果我們想使用Log4j來打日誌,怎麼辦了,我們需要在pom檔案中加上Log4j的starter同時排除Logback,如下:

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter</artifactId>  <exclusions>   <exclusion>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-logging</artifactId>   </exclusion>  </exclusions> </dependency> <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-log4j</artifactId> </dependency> 

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.