国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot 參考指南(日志記錄)

mengera88 / 1853人閱讀

摘要:默認(rèn)情況下,如果使用,則使用進(jìn)行日志記錄,還包括適當(dāng)?shù)穆酚桑源_保使用或的依賴庫都能正確工作。分隔符,用于區(qū)分實(shí)際日志消息的開始。

26. 日志記錄

Spring Boot為所有內(nèi)部日志記錄使用Commons Logging,但開放底層日志實(shí)現(xiàn),提供了Java Util Logging、Log4J2和Logback的默認(rèn)配置,在每種情況下,日志記錄器都被預(yù)先配置為使用控制臺輸出,可選的文件輸出也可用。

默認(rèn)情況下,如果使用“Starter”,則使用Logback進(jìn)行日志記錄,還包括適當(dāng)?shù)腖ogback路由,以確保使用Java Util Logging、Commons Logging、Log4J或SLF4J的依賴庫都能正確工作。

Java有很多日志框架可用,如果上面的列表看起來很混亂,不要擔(dān)心。一般情況下,你不需要更改日志依賴項(xiàng),Spring Boot缺省值也可以正常工作。
26.1 日志格式

Spring Boot的默認(rèn)日志輸出類似于以下示例:

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: [/*]

下面是輸出項(xiàng):

日期和時(shí)間:毫秒精度,易于分類。

日志級別:ERRORWARNINFODEBUGTRACE

進(jìn)程ID。

---分隔符,用于區(qū)分實(shí)際日志消息的開始。

線程名稱:用方括號括起來(可能被截?cái)嘤糜诳刂婆_輸出)。

記錄器名稱:這通常是源類名稱(通常縮寫)。

日志消息。

Logback沒有FATAL級別,它被映射為ERROR
26.2 控制臺輸出

默認(rèn)的日志配置會(huì)在消息被寫入時(shí)向控制臺回顯,默認(rèn)情況下,ERROR-級別、WARN-級別和INFO-級別的消息將被記錄下來,還可以通過使用--debug標(biāo)志啟動(dòng)應(yīng)用程序來啟用“debug”模式。

$ java -jar myapp.jar --debug
你還可以在application.properties中指定debug=true

啟用調(diào)試模式時(shí),將配置核心日志記錄器(嵌入式容器、Hibernate和Spring Boot)的選擇,以輸出更多信息,啟用調(diào)試模式不會(huì)將應(yīng)用程序配置為使用DEBUG級別記錄所有消息。

或者,你可以啟用“trace”模式,通過使用--trace標(biāo)志啟動(dòng)應(yīng)用程序(或在application.propertiestrace=true),這樣做可以使trace日志記錄用于選擇核心日志記錄器(嵌入式容器、Hibernate模式生成和整個(gè)Spring組合)。

26.2.1 彩色編碼輸出

如果你的終端支持ANSI,則使用顏色輸出來幫助提高可讀性,你可以將spring.output.ansi.enabled設(shè)置為支持的值,以覆蓋自動(dòng)檢測。

顏色編碼是通過使用%clr轉(zhuǎn)譯符來配置的,在最簡單的形式中,轉(zhuǎn)換器將輸出按照日志級別進(jìn)行著色,如下面的示例所示:

%clr(%5p)

下表描述了日志級別到顏色的映射:

級別 顏色
FATAL Red
ERROR Red
WARN Yellow
INFO Green
DEBUG Green
TRACE Green

或者,你也可以通過提供顏色或樣式作為轉(zhuǎn)換的選項(xiàng)來指定應(yīng)該使用的顏色或樣式,例如,要使文本變?yōu)辄S色,請使用以下設(shè)置:

%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){yellow}

支持以下顏色和風(fēng)格:

blue

cyan

faint

green

magenta

red

yellow

26.3 文件輸出

默認(rèn)情況下,Spring Boot日志只記錄到控制臺,不寫日志文件,如果你想在控制臺輸出之外寫入日志文件,你需要設(shè)置logging.filelogging.path屬性(例如,在你的application.properties中)。

下表顯示了如何將logging.*屬性結(jié)合使用:

表26.1. Logging屬性

logging.file logging.path 樣例 描述
(none) (none) 只控制臺記錄日志
指定文件 (none) my.log 寫入指定的日志文件,名稱可以是一個(gè)確切的位置或相對于當(dāng)前目錄
(none) 指定文件 /var/log 寫如spring.log到指定的目錄,名稱可以是一個(gè)確切的位置或相對于當(dāng)前目錄

日志文件在達(dá)到10MB時(shí)就會(huì)回滾,與控制臺輸出一樣,默認(rèn)情況下會(huì)記錄ERROR-級別、WARN-級別和INFO-級別的消息,可以使用logging.file.max-size屬性更改大小限制,除非logging.file.max-history屬性已被設(shè)置,否則之前回滾的文件將被無限期地歸檔。

日志系統(tǒng)在應(yīng)用程序生命周期的早期初始化,因此,在通過@PropertySource注解加載的屬性文件中沒有發(fā)現(xiàn)日志屬性。

日志記錄屬性獨(dú)立于實(shí)際的日志記錄基礎(chǔ)設(shè)施,因此,特定的配置鍵(例如Logback的logback.configurationFile)不是由spring Boot管理的。

26.4 日志級別

所有受支持的日志系統(tǒng)都可以在Spring Environment中通過使用logging.level.=(例如application.properties)中設(shè)置日志記錄器級別,其中level為TRACE、DEBUG、INFO、WARN、ERROR、FATAL或OFF,可以使用logging.level.root配置root日志記錄器。

下面的示例展示了application.properties中可能的日志記錄設(shè)置:

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
26.5 自定義日志配置

可以通過在類路徑中包含適當(dāng)?shù)膸靵砑せ罡鞣N日志系統(tǒng),還可以通過在類路徑的根目錄中或在以下Spring Environment屬性(logging.config)指定的位置中提供合適的配置文件來進(jìn)一步定制。

你可以通過使用org.springframework.boot.logging.LoggingSystem來強(qiáng)制Spring Boot使用特定的日志系統(tǒng),值應(yīng)該是LoggingSystem實(shí)現(xiàn)的完全限定類名,你還可以完全通過使用none值來禁用Spring Boot的日志配置。

因?yàn)槿罩臼窃趧?chuàng)建ApplicationContext之前初始化的,無法在Spring @Configuration文件中控制來自@PropertySources的logging,更改日志系統(tǒng)或完全禁用日志系統(tǒng)的唯一方法是通過系統(tǒng)屬性。

依賴于你的日志系統(tǒng),加載下列文件:

Logging系統(tǒng) 自定義
Logback logback-spring.xmllogback-spring.groovylogback.xml,或logback.groovy
Log4j2 log4j2-spring.xmllog4j2.xml
JDK (Java Util Logging) logging.properties
如果可能的話,我們建議你對logging配置使用-spring變體(例如,logback-spring.xml而不是logback.xml),如果使用標(biāo)準(zhǔn)配置位置,Spring不能完全控制日志初始化。
Java Util Logging存在已知的類加載問題,當(dāng)從“可執(zhí)行jar”運(yùn)行時(shí),會(huì)導(dǎo)致問題,如果可能的話,我們建議你在運(yùn)行“可執(zhí)行jar”時(shí)避免使用它。

為了幫助定制,一些其他屬性從Spring Environment轉(zhuǎn)移到系統(tǒng)屬性,如下表所示:

Spring環(huán)境 系統(tǒng)屬性 注釋
logging.exception-conversion-word LOG_EXCEPTION_CONVERSION_WORD 記錄異常時(shí)使用的轉(zhuǎn)換詞
logging.file LOG_FILE 如果定義,則在默認(rèn)日志配置中使用
logging.file.max-size LOG_FILE_MAX_SIZE 最大日志文件大小(如果啟用LOG_FILE),(只支持默認(rèn)的Logback設(shè)置)
logging.file.max-history LOG_FILE_MAX_HISTORY 要保存的歸檔日志文件的最大數(shù)量(如果啟用LOG_FILE),(只支持默認(rèn)的Logback設(shè)置)
logging.path LOG_PATH 如果定義,則在默認(rèn)日志配置中使用
logging.pattern.console CONSOLE_LOG_PATTERN 控制臺上要使用的日志模式(stdout),(只支持默認(rèn)的Logback設(shè)置)
logging.pattern.dateformat LOG_DATEFORMAT_PATTERN 日志日期格式的附加模式,(只支持默認(rèn)的Logback設(shè)置)
logging.pattern.file FILE_LOG_PATTERN 在文件中使用的日志模式(如果啟用了LOG_FILE),(只支持默認(rèn)的Logback設(shè)置)
logging.pattern.level LOG_LEVEL_PATTERN 在呈現(xiàn)日志級別時(shí)使用的格式(默認(rèn)%5p),(只支持默認(rèn)的Logback設(shè)置)
PID PID 當(dāng)前進(jìn)程ID(如果可能的話會(huì)被發(fā)現(xiàn),當(dāng)還沒有被定義為OS環(huán)境變量時(shí))

所有支持的日志系統(tǒng)在解析配置文件時(shí)都可以參考系統(tǒng)屬性,在spring-boot.jar中看默認(rèn)配置的例子:

Logback

Log4j 2

Java Util logging

如果希望在logging屬性中使用占位符,你應(yīng)該使用Spring Boot的語法,而不是底層框架的語法,值得注意的是,如果你使用Logback,你應(yīng)該使用:作為屬性名與其默認(rèn)值之間的分隔符,而不是使用:-
你可以通過只覆蓋LOG_LEVEL_PATTERN(或使用Logback的logging.pattern.level)來將MDC和其他特殊內(nèi)容添加到日志行中,例如,如果你使用logging.pattern.level=user:%X{user} %5p,然后,默認(rèn)的日志格式包含“user”的MDC項(xiàng),如果存在,如下例所示。
2015-09-30 12:30:04.031 user:someone INFO 22174 --- [  nio-8080-exec-0] demo.Controller
Handling authenticated request
26.6 Logback擴(kuò)展

Spring Boot包含許多可以幫助進(jìn)行高級配置的Logback擴(kuò)展,你可以在你的logback-spring.xml配置文件使用這些擴(kuò)展。

因?yàn)闃?biāo)準(zhǔn)logback.xml配置文件過早地加載,不能在其中使用擴(kuò)展,你需要使用logback-spring.xml或定義logging.config屬性。
不能使用Logback的配置掃描來使用擴(kuò)展,如果你嘗試這樣做,對配置文件進(jìn)行更改將導(dǎo)致類似于下面記錄的錯(cuò)誤之一:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProperty], current ElementPath is [[configuration][springProperty]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]
26.6.1 特殊配置文件配置

通過標(biāo)簽,你可以根據(jù)激活的Spring配置文件選擇包含或排除配置的部分。在元素中的任何地方都支持配置文件部分,使用name屬性指定哪個(gè)配置文件接受配置,可以使用逗號分隔的列表指定多個(gè)配置文件,下面的清單顯示了三個(gè)示例配置文件:


    



    



    
26.6.2 環(huán)境屬性

通過標(biāo)記,可以從Spring Environment中公開屬性,以便在Logback中使用,如果你希望在Logback配置中從application.properties文件中訪問值,那么這樣做是很有用的,標(biāo)簽的工作方式與Logback的標(biāo)準(zhǔn)標(biāo)簽類似。但是,不是指定直接value,而是指定屬性的source(來自Environment)。如果你需要將屬性存儲(chǔ)在本地范圍之外的其他地方,則可以使用scope屬性,如果需要回退值(如果Environment中沒有設(shè)置屬性),可以使用defaultValue屬性,下面的示例展示了如何在Logback中公開屬性以供使用:



    ${fluentHost}
    ...
必須在連接符形式中指定source(例如my.property-name),但是,可以使用寬松的規(guī)則將屬性添加到Environment中。
上一篇:配置文件 下一篇:開發(fā)Web應(yīng)用程序

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71227.html

相關(guān)文章

  • Spring Boot 參考指南(目錄)

    摘要:參考指南使你可以輕松地創(chuàng)建可運(yùn)行的獨(dú)立的生產(chǎn)級的基于的應(yīng)用程序,我們對平臺和第三方庫有自己的看法,這樣你就可以以最低限度工作開始了,大多數(shù)應(yīng)用程序都需要很少的配置。文檔本節(jié)簡要概述了參考文檔,它充當(dāng)文檔其余部分的映射。 Spring Boot 參考指南 Spring Boot使你可以輕松地創(chuàng)建可運(yùn)行的獨(dú)立的、生產(chǎn)級的基于Spring的應(yīng)用程序,我們對Spring平臺和第三方庫有自己的看...

    awesome23 評論0 收藏0
  • Spring Boot 參考指南(通用的應(yīng)用程序?qū)傩?①)

    摘要:第章附錄附錄通用的應(yīng)用程序?qū)傩钥梢栽谖募募蜃鳛槊钚虚_關(guān),中指定各種屬性,本附錄提供了一個(gè)通用的屬性列表和對使用它們的底層類的引用。本示例文件僅作為指南,不要將整個(gè)內(nèi)容復(fù)制粘貼到應(yīng)用程序中,相反,只選擇你需要的屬性。 第X章. 附錄 附錄A. 通用的應(yīng)用程序?qū)傩?可以在application.properties文件,application.yml文件,或作為命令行開關(guān),中指定...

    ispring 評論0 收藏0
  • Spring Boot 參考指南(自動(dòng)配置)

    摘要:許多配置示例已經(jīng)在上發(fā)布,它們使用配置。逐漸取代自動(dòng)配置自動(dòng)配置非侵入性,在任何時(shí)候,你都可以開始定義自己的配置來替換自動(dòng)配置的特定部分。最后,你還可以通過使用屬性來控制要排除的自動(dòng)配置類的列表。 15. 配置類 Spring Boot支持基于java的配置,雖然可以使用XML源的SpringApplication,但是我們通常建議你的主源是一個(gè)@Configuration類。通常,定...

    dendoink 評論0 收藏0
  • Spring Boot 參考指南Spring Boot文檔)

    摘要:關(guān)于文檔參考指南可用如下方式最新的副本可以在中找到。嘗試操作文檔,它們?yōu)樽畛R姷膯栴}提供解決方案。學(xué)習(xí)基礎(chǔ),構(gòu)建在許多其他項(xiàng)目上,網(wǎng)站提供豐富的參考文檔,如果你要從開始,嘗試其中一個(gè)指南。我們對進(jìn)行監(jiān)視,以解決帶有標(biāo)記的問題。 1. 關(guān)于文檔 Spring Boot 參考指南可用如下方式: HTML PDF EPUB 最新的副本可以在 docs.spring.io/spring-b...

    zhjx922 評論0 收藏0
  • Spring Boot 參考指南(構(gòu)建系統(tǒng))

    摘要:構(gòu)建系統(tǒng)強(qiáng)烈建議你選擇一個(gè)支持依賴管理的構(gòu)建系統(tǒng),并且可以使用發(fā)布到中心存儲(chǔ)庫的工件。例如,要升級到另一個(gè),你可以將以下元素添加到你的在前面的示例中,我們指定了一個(gè),但是任何依賴類型都可以以相同的方式被覆蓋。 13. 構(gòu)建系統(tǒng) 強(qiáng)烈建議你選擇一個(gè)支持依賴管理的構(gòu)建系統(tǒng),并且可以使用發(fā)布到Maven中心存儲(chǔ)庫的工件。我們建議你選擇Maven或Gradle,可以讓Spring Boot與其...

    thursday 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<