java - Spring Boot:如何根据当前环境或 spring 配置文件使用自定义 logback.xml
问题描述
我已阅读以下两个来源:
spring-boot logback.xml 属性取决于配置文件
我正在尝试执行以下操作:
当我使用特定的 spring 活动配置文件(gradlew bootRun -Dspring.profiles.active=sst
我们用于单服务测试)运行我的 Spring Boot 应用程序时,我需要应用程序使用特定的日志记录配置(假设使用特定的日志级别或使用我们可以捕获输出的日志记录)测试)。
我们确实application-sst.properties
配置了一个自定义文件,并且该文件已被拾取并可以正常工作。
有没有办法让我为 logback.xml 做类似的事情 - 例如添加logback-sst.xml
在 SST 上下文中使用的内容?
解决方案
一些建议:
如果您只需要特殊配置来进行测试,有一个简单的解决方案:放入
logback-test.xml
,src/test/resources
您就可以开始了。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>
在这里你可以找到相关的教程
推荐阅读
- python - 在 pd.concat 中添加空格
- pyspark - pyspark coalesce 在设备上没有剩余空间
- powershell - 隐藏和禁用最大化按钮和禁用双击栏最大化窗口
- azure-cosmosdb - 避免 - 由于系统缺少足够的缓冲区空间或队列已满,因此无法对套接字执行操作
- c# - 从工作表中输出,不重复
- r - 使用 rvest 抓取不在表中的数据
- ruby - 在ruby中将文本转换为粗体
- delphi - MSVC DLL 加载:是 __declspec(dllexport) 函数在没有 DllMain 的情况下直接加载的
- php - 为 foreach() 提供的参数无效:Yii2
- spring-mybatis - mybatis/xml 文件中的动态查询执行