簡體   English   中英

Spring Boot:如何根據當前環境或spring配置文件使用自定義logback.xml

[英]Spring Boot: How to use custom logback.xml depending on current environment or spring profile

我已經閱讀了以下兩個來源:

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上下文中使用?

一些建議:

  1. 如果您只需要一些特殊的測試配置,那么有一個簡單的解決方案:將logback-test.xml放在src/test/resources ,你就可以了。

  2. Logback支持彈簧配置文件的概念,允許在同一文件中放置不同配置文件的配置:

例:

<?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>

在這里您可以找到相關的教程

在命名配置文件“ logback-spring.xml ”而不是“logback.xml”時,Spring只會在您的logback配置中獲取配置文件信息。

在配置文件中,您可以像以下示例一樣使用您的配置文件:

 <springProfile name="sst">
     <appender-ref ref="JSON_STDOUT"/>
     ...
 </springProfile>

您甚至可以對您的個人資料使用否定:

 <springProfile name="!prod">
     <appender-ref ref="JSON_STDOUT"/>
     ...
 </springProfile>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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