繁体   English   中英

带有springProfile的Logback-spring.xml不能与多个配置文件一起使用

[英]Logback-spring.xml with springProfile not working with multiple profiles

我在 spring 启动应用程序中有多个配置文件并尝试使用 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>

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM