[英]Externalize logback-spring.xml programmatically
我的application.properties
使用PropertyPlaceholderConfigurer
編程加載。 因此,在application.properties
設置logging.config
(例如: logging.config=file:/home/dev-01/conf/logback.xml
)
在application.properties
無法正常運行,因為日志記錄發生在生命周期的早期,因此無法從application.properties
讀取值。
我需要外部化logback.xml
,因為需要根據環境配置屬性值。 如果我可以將其外部化,則可以通過支持/操作來進行管理,而無需開發人員干預。 另外,無需從application.properties
重定向即可輕松維護。 這意味着我可以在logback.xml
文件本身中設置屬性值。
我看到了在啟動期間添加VM選項的解決方案。 我沒有嘗試過,但是我只是想知道是否可以以編程方式加載logback.xml
(類似於application.properties
)。
我使用這樣的配置來實現:
<configuration scan="true" scanPeriod="10 seconds" debug="false">
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
<include file="${CONFDIR}/config/logback-config.xml" />
</configuration>
然后在該位置放置另一個logback配置,對該文件的更改將每10秒刷新一次
logback.xml
編程方式加載logback.xml
似乎不是可行的解決方案。 我的情況是application.properties
以編程方式(從外部路徑)加載,因此在application.properties
文件中設置logging.config
屬性將不起作用。 注意,它使用類路徑中的默認application.properties
起作用。 我認為最實用的方法是傳遞-Dlogging.config=/[some-path]/logback.xml
。 該選項對我有用,並且無需重新部署jar文件即可更新日志記錄級別(用於調試目的)。
如果logback.xml已更新,則將logback.xml配置掃描設置為true將刷新設置。
<configuration debug="true" scan="true">
...
</configuration>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.