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

Wil*_*son 28 java logging logback java-ee

这是我第一次涉足LogBack的世界,但是我无法在文档中的任何地方找到我可以定义编码器/模式一次并在多个appender之间共享它.知道怎么做到这一点?

pal*_*int 44

模式可以通过变量替换重复使用.

<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>
Run Code Online (Sandbox Code Playgroud)


Wil*_*son 25

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

  • 这也来自配置部分:"请注意,每个appender都有自己的编码器.编码器通常不会被多个appender共享.布局也是如此.因此,logback配置文件不提供任何语法共享方式编码器或布局." (4认同)