【问题标题】:Logback-spring.xml with springProfile not working with multiple profiles带有 springProfile 的 Logback-spring.xml 不能使用多个配置文件
【发布时间】:2021-05-19 05:33:11
【问题描述】:

我在 Spring Boot 应用中有多个配置文件并尝试使用 3 个不同的附加程序。

  1. 控制台附加程序
  2. CONSOLE-GVA 附加程序
  3. 文件附加器

当我使用“本地”配置文件运行它进行测试时,它同时使用“文件”和“控制台”附加程序。 我期望它应该使用唯一的 File appender

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/file-appender.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>

<springProperty scope="context" name="maskedProperty" source="gva.logs.masked.property"/>

<springProfile name="!vsi, gva-gaia, !local">

    <appender name="CONSOLE-GVA" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="com.batch.logger.MaskingPatternLayout">
                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
                <patternsProperty>${maskedProperty}</patternsProperty>
            </layout>
        </encoder>
    </appender>

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

<springProfile name="!vsi,!gva-gaia,!local">
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</springProfile>

<springProfile name="vsi,local">

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/${LOG_FILE}</file>
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="com.batch.logger.MaskingPatternLayout">
                <pattern>${FILE_LOG_PATTERN}</pattern>
                <patternsProperty>${maskedProperty}</patternsProperty>
            </layout>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/batch.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>14</maxHistory>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE"/>
    </root>
</springProfile>

【问题讨论】:

    标签: java spring spring-boot logback spring-logback


    【解决方案1】:

    如果profileNames列表大小大于1,只要有匹配就表示成功。 本地开发匹配!vsi。 org.springframework.boot.logging.logback.SpringProfileAction#acceptsProfiles(InterpretationContext ic, Attributes attributes)

    <springProfile name="!local">
        <root level="INFO">
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>
    

    【讨论】:

      猜你喜欢
      • 2020-09-24
      • 2020-11-25
      • 2017-09-07
      • 1970-01-01
      • 2016-06-09
      • 2018-08-21
      • 2018-04-06
      • 2018-06-04
      相关资源
      最近更新 更多