带有 springProfile 的 Logback-spring.xml 不适用于多个配置文件

问题描述

我在 Spring Boot 应用中有多个配置文件,并尝试使用 3 个不同的 appender。

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

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)