【问题标题】:Logging library implementation to use with SLF4J wrapper?与 SLF4J 包装器一起使用的日志库实现?
【发布时间】:2021-11-12 05:30:07
【问题描述】:

我们在我们的应用程序中使用第三方工具(xyz 工具)作为战争依赖项。

现在的问题是 xyz 工具有自己的记录错误的方式 - 比如他们将调试日志放在 Dubug.log 文件中,然后将引擎日志放在 engine.log 文件中等等。正如他们所说,他们主要将 SLF4J 与 Log4j 和 commons-logging 一起用于其他目的。

现在,当谈到我们的应用程序级日志记录时,我们正在使用 log4j。因此发生了什么......我们正在覆盖他们的日志配置,因为两者都使用 log4j,我们不希望他们的工具相关日志打印在我们的应用程序日志中。

所以我们想到了使用 diff 记录器库,但该工具已经将 slf4j 与 log4j 一起使用,因此我们不能使用其他库,如 logback、commons-logging、java.util.logging 等,如下面的片段所述。

我们尝试使用 logback-classic.jar,但它与 log4j-slf4j-impl.jar 冲突

现在我不知道使用哪个 impl 来解决问题。

【问题讨论】:

    标签: java logging slf4j


    【解决方案1】:

    我所做的是拥有一个带有这些依赖项的log4j.properties。我认为这是最简单的配置。您可能会发现此配置比您尝试做的更容易。

    <!--region Lombok Configuration -->
    <!-- logger guide http://www.javabyexamples.com/lombok-log4j-slf4j-and-other-log-annotations#slf4j -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.15.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.15.0</version>
    </dependency>
    <!-- endregion -->
    

    注意 2:这些依赖项表示绑定到 log4j 记录器实现的 SLF4j 包装器。

    注意 1:我不能 100% 确定上述配置是否适合您。只是猜测。

    【讨论】:

      猜你喜欢
      • 2014-07-05
      • 1970-01-01
      • 2020-03-24
      • 2011-11-07
      • 2021-02-18
      • 2017-05-06
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      相关资源
      最近更新 更多