java - SLF4J 桥接所需的配置文件

标签 java log4j slf4j apache-commons-logging java.util.logging

我正在编写一个 Java 应用程序,它将使用 SLF4J 来处理带有 JUL(Java Utils Logging)运行时绑定(bind)的日志记录。因此,我的类路径上将包含 slf4j-api-1.6.4.jar 以及 slf4j-jdk14-1.6.4.jar

JUL 可以通过 logging.properties 配置,所以我的类路径上也需要它。

为了确保我的所有第 3 方依赖项都记录到相同的 JUL 配置,我计划将以下所有桥也放在我的类路径上:

  • jcl-over-slf4j-1.6.4.jar
  • log4j-over-slf4j-1.6.4.jar

JCL 通过 commons-logging.properties 配置,Log4J 通过 log4j.properties 配置。

我的问题:我是否需要将 commons-logging.propertieslog4j.properties 放在我的类路径上,或者由于 SLF4J 桥接器而没有必要?

我 90% 确定我不需要这样做,但需要在这里进行健全性检查!我的理论是,桥接器用只是盲目调用 SLF4J API 调用的 stub 替换了普通的 JCL/Log4J 类。

这些 SLF4J API 调用反过来,就像我的代码所做的那样,使用它们在运行时绑定(bind)到的任何实现。由于我的案例中的绑定(bind)是 JUL,因此只需要 logging.properties 文件。

但我不是日志记录专家,我宁愿安全也不愿后悔。那么我是否需要这些额外的配置文件,如果需要,请解释原因,以便我可以更好地理解 SLF4J 的工作原理!提前致谢!

最佳答案

不,您不需要将 commons-logging.propertieslog4j.properties 放在您的类路径上,由于 SLF4J 桥的存在,这是不必要的。您对新娘的理解是正确的。

如果您使用 Maven,您可能会想要使用 Banned Dependencies执行者规则,以避免对 log4j、commons-logging 或 logback 的依赖蔓延。

关于java - SLF4J 桥接所需的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11914064/

相关文章:

java - 出现此错误 : "Could not initialize class org.apache.logging.log4j.LogManager"

debugging - 如何在web.xml 和log4j.properties 中配置log4j 输出文件路径?

java - Jenkins 忽略用于记录的 java 命令行选项。如何修复它?

java - 在类中定义 Logger 实例的最佳方法

java - Jira 6.1.6 Java REST api - 无法设置自定义下拉值

java - 如何获取数字键盘布局

java - 如何使用for循环插入多个值

java - 如何使段落标签内的 anchor 标签可点击?

tomcat - Log4J 在 war 部署时抛出一个 stackoverflow 错误

java - Spring Boot 中 logback 中的 OWSAP ESAPI 日志记录支持