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

标签 java spring spring-boot logback

我的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 文件本身中设置属性值。

我看到了在启动期间添加虚拟机选项的解决方案。我还没有尝试过,但我只是想知道是否可以以编程方式加载 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 秒刷新一次

关于java - 以编程方式外部化 logback-spring.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459213/

相关文章:

java - Spring Java 配置 - 如何创建枚举映射到 beans-references

java - 在 Spring Boot Context 路径之外访问 Swagger

java - 如何在对象被销毁之前知道

java - 如何防止 java 1.4 项目使用 1.5/1.6 特定 API?

spring - Lombok @slf4j 不记录

java - 如何在 Spring REST 服务中获取所有传入请求的详细信息?

spring - 由于 com.mongodb.BasicDBObject 的限制在添加多个条件 GridFSDBFile 查询时异常

java - 结果集总是返回空,我不应该在准备好的语句上使用executeQuery()吗?

java - 我如何在 Java 中执行以下 curl 命令

java - JUnit 找不到 ApplicationContext