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