在 Logback 中的多个追加器之间共享一个编码器/模式

2022-09-01 02:23:33

这是我第一次涉足LogBack世界,但是我在文档中找不到任何可以定义一次编码器/模式并在多个附加器之间共享的地方。任何想法如何做到这一点?


答案 1

模式可通过变量替换重用。

<configuration>

    <property name="defaultPattern"
        value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${defaultPattern}</pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

答案 2

对于任何感兴趣的人,我确实从LogBack文档的第4章中找到了这个小宝石:“每个布局/编码器都与一个且只有一个追加器相关联,称为拥有追加器”,对我来说,这读起来好像追加器不可能共享单个编码器实例。


推荐