2017-06-09 69 views
0

我的application.properties以編程方式加載 使用PropertyPlaceholderConfigurer。所以,在設定application.propertieslogging.config(如:logging.config=file:/home/dev-01/conf/logback.xml),因爲日誌記錄在生命週期早期發生,因此不能從application.properties讀取值以編程方式外部化logback-spring.xml

application.properties

將無法​​正常工作。

我需要外部化logback.xml,因爲有屬性值需要根據環境進行配置。如果我可以將其外部化,則可以通過支持/操作進行管理,無需開發人員干預。此外,從application.properties不用重定向很容易維護。含義我可以在logback.xml文件本身中設置屬性值。

我看到了在啓動過程中添加VM選項的解決方案。我還沒有嘗試過,但我只是想知道我是否可以通過編程加載logback.xml(與我的application.properties類似)。

+0

春季 - 將被刷新boot會自動在你的類路徑中搜索'logback.xml'或'logback-spring.xml'文件並在啓動時加載它。在app.props中設置'logging.config'屬性是沒有必要的。 –

+0

@lazarov我需要從外部路徑加載logback.xml或logback-spring.xml。 – alltej

回答

0

正在加載logback.xml以編程方式看起來不是一個可行的解決方案。我的場景是application.properties以編程方式加載(從外部路徑),因此在application.properties文件中設置logging.config屬性將不起作用。請注意,它使用類路徑中的默認application.properties。我認爲最務實的做法是通過-Dlogging.config=/[some-path]/logback.xml。此選項適用於我並更新日誌級別(用於調試目的),而無需重新部署jar文件。

將logback.xml配置設置爲將掃描設置爲true將更新logback.xml時刷新設置。

<configuration debug="true" scan="true"> 
    ... 
</configuration> 
1

我使用的配置是這樣實現的是:

<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秒

相關問題