我的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
似乎不是一个可行的解决方案。我的方案是application.properties
以编程方式加载(从外部路径(,因此application.properties
logging.config
文件中设置属性将不起作用。请注意,它使用类路径中的默认application.properties
工作。我认为最务实的方法是通过-Dlogging.config=/[some-path]/logback.xml
.此选项适用于我并更新日志记录级别(用于调试目的(,而无需重新部署 jar 文件。
如果更新了 logback.xml配置扫描,将刷新设置.xml。
<configuration debug="true" scan="true">
...
</configuration>