gpt4 book ai didi

java - 使用 SLF4J 将 java.util.logging.Logger (JUL) 发送/重定向/路由到 Logback?

转载 作者:IT老高 更新时间:2023-10-28 20:45:03 24 4
gpt4 key购买 nike

是否可以对 java.util.logging.Logger 进行典型调用并使用 SLF4J 将其路由到 Logback?这会很好,因为我不必逐行重构旧的 jul 代码。

EG,假设我们有这行:

private static Logger logger = Logger.getLogger(MahClass.class.getName());
//...
logger.info("blah blah blah");

最好将其配置为通过 SLF4J 调用。

最佳答案

这很容易,不再是性能问题。

SLF4J manual 中记录了两种方法. Javadocs 中也有精确的例子。

将 jul-to-slf4j.jar 添加到您的类路径中。或者通过maven依赖:

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.0</version>
</dependency>

如果您没有 logging.properties(用于 java.util.logging),请将其添加到您的引导代码中:

SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();

如果您有 logging.properties(并且想保留它),请将其添加到其中:

handlers = org.slf4j.bridge.SLF4JBridgeHandler

为了避免性能损失,请将此 contextListener 添加到 logback.xml(从 logback 版本 0.9.25 开始):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<!-- reset all previous level configurations of all j.u.l. loggers -->
<resetJUL>true</resetJUL>
</contextListener>

...

</configuration>

关于java - 使用 SLF4J 将 java.util.logging.Logger (JUL) 发送/重定向/路由到 Logback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6020545/

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