对多个记录器重复使用logback的XML追加器

时间:2019-09-09 07:55:50

标签: spring-boot logback rollingfileappender spring-logback

是否可以一次定义logback附加程序,然后将其与重写参数一起用于多个spring配置文件?

例如:

    <appender name="FILE_APPENDER"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %logger: %msg%n
            </Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/old/${LOG_FILE}.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10M</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

    </appender>

我想将此配置文件用于配置文件productiondevelopment,每个记录器的LOG_FILE变量中的值都不同。对于LoggerNameA的实例,我需要路径/tmp/logs/A,对于LoggerNameB路径,/tmp/logs/B

<springProfile name="development">
    <!-- here I need set LOG_FILE to for /tmp/logs/A -->
    <logger name="LoggerNameA" level="info" additivity="true">
        <appender-ref ref="FILE_APPENDER" />
    </logger>
    <!-- here I need set LOG_FILE to for /tmp/logs/B -->
    <logger name="LoggerNameB" level="info" additivity="true">
        <appender-ref ref="FILE_APPENDER" />
    </logger>
</springProfile>

有可能吗?谢谢。

0 个答案:

没有答案