首页 > 解决方案 > Spring Boot:如何根据当前环境或 spring 配置文件使用自定义 logback.xml

问题描述

我已阅读以下两个来源:

https://examples.javacodegeeks.com/enterprise-java/spring/load-environment-configurations-and-properties-with-spring-example/

spring-boot logback.xml 属性取决于配置文件

我正在尝试执行以下操作:

当我使用特定的 spring 活动配置文件(gradlew bootRun -Dspring.profiles.active=sst我们用于单服务测试)运行我的 Spring Boot 应用程序时,我需要应用程序使用特定的日志记录配置(假设使用特定的日志级别或使用我们可以捕获输出的日志记录)测试)。

我们确实application-sst.properties配置了一个自定义文件,并且该文件已被拾取并可以正常工作。

有没有办法让我为 logback.xml 做类似的事情 - 例如添加logback-sst.xml在 SST 上下文中使用的内容?

标签: javaspringspring-bootlogging

解决方案


一些建议:

  1. 如果您只需要特殊配置来进行测试,有一个简单的解决方案:放入logback-test.xmlsrc/test/resources您就可以开始了。

  2. Logback 支持 spring 配置文件的概念,允许将不同配置文件的配置放在同一个文件中:

例子:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

<springProfile name="dev">
   <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
   ... 
  </appender>

  <root level="DEBUG">
    <appender-ref ref="CONSOLE"/>
  </root>
</springProfile>

<springProfile name="staging">
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
     ...
    </appender>

    <root level="DEBUG">
      <appender-ref ref="CONSOLE"/>
    </root>
</springProfile>

</configuration>

在这里你可以找到相关的教程


推荐阅读