我目前正在观察第三方库(即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
在main函数中,我还通过调用以编程方式安装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>
有什么不对吗?
答案 0 :(得分:0)
启用session调试后,JavaMail可以直接写入System.out。这可能是您看到控制台输出的原因。尝试将其转为off:
Session s = Session.getInstance(props);
s.setDebug(false);
否则,您可以更改JavaMail记录器的logger level。
java.util.logging.Logger.getLogger("javax.mail").setLevel(Level.WARNING);
根JavaMail记录器名称是&#39; javax.mail&#39;。有关更改记录器级别的其他方法,请参阅java.util.logging: how to set level by logger package (or prefix)?。
JavaMail 1.3 FCS RELEASE是第一个支持通过输出流进行debuging的版本。通过default System.out作为默认调试流返回。 JavaMail 1.4.6是第一个适合使用java.util.logging的版本。旧版应用程序仍支持以前的行为。