簡體   English   中英

以編程方式外部化logback-spring.xml

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM