gpt4 book ai didi

jakarta-ee - slf4j,在运行时更改记录器或添加附加程序

转载 作者:行者123 更新时间:2023-12-04 18:43:32 24 4
gpt4 key购买 nike

我正在使用 SLF4J 进行日志记录(使用 Log4J)。
使用的 appender 是使用 xml 配置的。

<appender name="business" class="org.apache.log4j.RollingFileAppender">
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="10" />
<param name="File" value="${jboss.server.log.dir}/business.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p [%t] %c - %m%n" />
</layout>
</appender>
<category name="BusinessLogger" additivity="false">
<level value="INFO" />
<appender-ref ref="business" />
</category>

日志进程在拦截器中调用。现在,我正在尝试测试日志的输出。我在运行时使用以下命令调用记录器:
private static final Logger BUSINESS_LOGGER = LoggerFactory.getLogger("BusinessLogger");

为了测试日志(使用 junit),日志的输出需要作为变量保存在某处。我有一个关于创建自定义附加程序的想法,它将最后一个日志保存到变量中,但我似乎无法添加附加程序或更改附加程序,因为 slf4j 中的 Logger 类是一个接口(interface)。有没有人可能知道任何解决方法?

最佳答案

slf4j 只是 log4j/log4j2/logback 之上的一个门面。
一旦你声明了 slf4j 记录器对象:

private static final Logger BUSINESS_LOGGER = LoggerFactory.getLogger("BusinessLogger");

您可以使用 log4j LogManager 添加 log4j appender。
LogManager.getLogger("BusinessLogger").addAppender(consoleAppender);

关于jakarta-ee - slf4j,在运行时更改记录器或添加附加程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19227638/

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