【问题标题】:Config files needed for SLF4J bridgingSLF4J 桥接所需的配置文件
【发布时间】:2012-08-08 11:42:14
【问题描述】:

我正在编写一个 Java 应用程序,它将使用 SLF4J 通过运行时绑定 JUL(Java Utils Logging)来处理日志记录。因此,我的类路径上会有 slf4j-api-1.6.4.jarslf4j-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% 确定我不必这样做,但需要在这里进行健全性检查!我的理论是,桥接器将普通的 JCL/Log4J 类替换为只是盲目地调用 SLF4J API 调用的存根。

反过来,这些 SLF4J API 调用,就像我的代码一样,使用它们在运行时绑定的任何实现。由于我的绑定是 JUL,因此只需要一个 logging.properties 文件。

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

【问题讨论】:

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


    【解决方案1】:

    不,您不需要将 commons-logging.propertieslog4j.properties 放在您的类路径中,因为 SLF4J 桥接器,这没有必要。你对新娘的理解是正确的。

    如果您使用 Maven,您可能希望使用 Banned Dependencies 强制规则来避免对 log4j、commons-logging 或 logback 的依赖。

    【讨论】:

    • 我第一次看到有人提到执行器插件。这对于非常大的项目和维护单个日志记录实现是必须的。
    猜你喜欢
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 2014-12-31
    • 1970-01-01
    • 2015-05-14
    • 2020-07-18
    • 1970-01-01
    相关资源
    最近更新 更多