我目前观察到第 3 方库(即 javax.mail )正在使用 java.util.logging。
javaMail的版本是1.4.7。
我想使用 SLF4J LoggingFramwork 将 JUL 桥接到 logback。
slf4j api 版本是:logback-core|1.0.13
slf4j-api|1.7.5
七月至 slf4j|1.7.5
在主函数中,我还通过调用以编程方式安装 SLF4JBridgeHandler:
// Optionally remove existing handlers attached to j.u.l root logger
SLF4JBridgeHandler.removeHandlersForRootLogger();
// add SLF4JBridgeHandler to j.u.l's root logger, should be done once during
// the initialization phase of your application
SLF4JBridgeHandler.install();
但它不起作用,javaMail 还在我的控制台中记录调试信息。我的 logbak.xml 是
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
有什么问题吗?
最佳答案
与 session调试开启JavaMail可以直接写入System.out。这可能是您看到控制台输出的原因。尝试转动它off :
Session s = Session.getInstance(props);
s.setDebug(false);
否则您可以更改 logger level对于 JavaMail 记录器。
java.util.logging.Logger.getLogger("javax.mail").setLevel(Level.WARNING);
根 JavaMail 记录器名称是“javax.mail”。请参阅java.util.logging: how to set level by logger package (or prefix)?了解更改记录器级别的其他方法。
JavaMail 1.3 FCS RELEASE 是第一个支持通过输出流进行调试的版本。通过default System.out 作为默认调试流返回。 JavaMail 1.4.6是第一个适合使用 java.util.logging 的版本。旧应用程序仍支持以前的行为。
关于java - 使用 SLF4J 桥接 JUL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738479/