本文介紹了了解Spring Boot 2的默認登錄配置的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在創建一個Java Spring Boot2.1應用程序,該應用程序使用Maven添加Spring-boot-starter依賴項。如the documentation中所述,這將啟用默認的Logback配置。此配置可以自由找到in this repository,并且包含我難以理解的語法。
1.神秘的破折號
我知道Spring屬性是使用以下語法設置的
${Property.name:ome DefaultValue}
但是,在Logback配置的XML文件中,冒號后面總是有一個破折號。這是為什么?例如:
屬性名稱=日志文件&value=";${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}/>;";
2.更改屬性名稱
我也不清楚所有這些屬性名稱從何而來。在文檔中提到使用如下屬性填充我們的應用程序.Properties或Applation.yml:
logging.file=/app/Logs/mylog.log
如何以及在何處將名為logging.file
的屬性轉換為Logback XML文件中使用的名為LOG_FILE
的屬性?
3.丟失的屬性
具體地說,此屬性在Applation.Properties(或.yml)中沒有用于配置它的等效屬性
<;totalSizeCap>;${LOG_FILE_TOTAL_SIZE_CAP:-0}<;/totalSizeCap&>
如果要將該屬性更改為其他值,則必須以某種方式設置LOG_FILE_TOTAL_SIZE_CAP屬性。如何在仍使用Spring Boot提供的原始默認Logback配置XML的情況下執行此操作?
4.我們使用默認附加器
Logback XML文件中唯一的附加器邏輯是:
<;根級別=&infot;>;
<;附加器-ref=";控制臺;/&>
<;附加器-ref=";文件;/&>
<;/根&>
和Applation.Properties不允許更改這一點。盡管我必須承認這是非常有用的默認設置,但有時它并不起作用。為了一個附加器或策略的一個小調整,必須完全覆蓋整個Logback XML配置,這似乎有點過頭了。如果我在類路徑上提供多個自定義Logback/XML配置文件,Logback會合并它們,還是只選擇一個而忽略其他文件?覆蓋/合并是如何工作的,哪個XML‘贏’?
推薦答案
1.神秘的破折號
用于登錄:https://logback.qos.ch/manual/configuration.html。具體如下:
在某些情況下,變量可能需要
如果未聲明或其值為空,則使用默認值。如中所示
在Bash外殼中,可以使用”:-“指定默認值
接線員。例如,假設名為aName的變量不是
定義后,”${aName:-Golden}”將被解釋為”Gold”。
2.更改屬性名稱
這應該有助于映射:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html。還可以四處轉轉org.springframework.boot.logging.LoggingSystemProperties
。
3.丟失的屬性
我同意您的評估!也許在這里(在apply()
方法中?)使用LoggingSystemProperties進行一些挖掘可能會有所幫助。但更有可能通過提供您自己的logback.xml來解決。
4.我們使用默認附加器
這也是真的。見https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html的83.1。實際上,我工作過的每個項目都提供了自己的log4j.xml、logback.xml等。
這篇關于了解Spring Boot 2的默認登錄配置的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,