java - 使用 SLF4J 桥接 JUL 不起作用

标签 java slf4j logback java.util.logging

我目前观察到第 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/

相关文章:

java - 确定IP是否在Android上的特定范围内

java - 需要帮助将文本输出居中

grails - 部署到Weblogic时出现SLF4J异常

java - FixedWindowRollingPolicy 和 SizeBasedTriggeringPolicy 触发策略不适用于 logback 1.1.7

android - LogBack - 使用应用程序信息设置日志记录模式

java - 查找第一个元素大于或等于最后一个元素且子数组大小等于 X 的子数组

Java3D : Painting 2D HUD over a Canvas3D

登录 Clojure

java - log4j 不写入文件,而是写入控制台

logging - Spring Boot linux 服务不轮换日志文件