gpt4 book ai didi

java - 在 Logback 中对 Appender 进行分组?

转载 作者:搜寻专家 更新时间:2023-11-01 00:57:09 25 4
gpt4 key购买 nike

我有两个附加程序。其中一个是 DB appender,另一个是 SMTPAppender。当我记录一个带有特殊标记的字符串时,我想同时使用我的自定义数据库附加程序和 SMTPAppender。但是我不想每次都定义两个附加程序:

<logger name="com.MyClass" level="DEBUG" additivity="false">
<appender-ref ref="CUSTOM_DB"/>
<appender-ref ref="CUSTOM_EMAIL"/>
</logger>

我想要一个像这样的特殊引用:

<appender-group ref="CUSTOM_COMBO">
<appender-ref ref="CUSTOM_DB"/>
<appender-ref ref="CUSTOM_EMAIL"/>
</appender-group>

<logger name="com.MyClass" level="DEBUG" additivity="false">
<appender-ref ref="CUSTOM_COMBO"/>
</logger>

它应该同时调用 CUSTOM_DB 和 CUSTOM_EMAIL。我如何使用 slf4j 在 Logback 中做到这一点?

最佳答案

因此来自 https://tersesystems.com/blog/2019/05/27/application-logging-in-java-part-5/

public class CompositeAppender<E> extends UnsynchronizedAppenderBase<E> implements AppenderAttachable<E> {

protected AppenderAttachableImpl<E> aai = new AppenderAttachableImpl<E>();

@Override
protected void append(E eventObject) {
aai.appendLoopOnAppenders(eventObject);
}

// AppenderAttachable API delegates to aai in all cases
}

<configuration>

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%-5level] %logger{15} - message%n%xException{10}</pattern>
</encoder>
</appender>

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>file.log</file>
<encoder>
<pattern>%date - %message</pattern>
</encoder>
</appender>

<appender name="CONSOLE_AND_FILE" class="com.tersesystems.logback.CompositeAppender">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</appender>

<root level="TRACE">
<appender-ref ref="CONSOLE_AND_FILE"/>
</root>
</configuration>

关于java - 在 Logback 中对 Appender 进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17112120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com