slf4j-log4j12与log4j之间的区别

tuk*_*tuk 6 java log4j slf4j slf4j-api

在一个项目中,pom.xml我看到了如下的依赖

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

有人能让我知道slf4j-log4j12& 之间的区别是log4j什么?

gly*_*ing 8

Log4j 1.2

slf4j-log4j12 提供了 SLF4J 和 Log4j 1.2 之间的桥梁,以便 SLF4J 知道如何使用 Log4j 进行日志记录。

您正在使用 Log4j 1.2。该版本的绑定由 SLF4J 项目维护。以下是SLF4J 文档的摘要:

SLF4J 支持各种日志框架。SLF4J 发行版附带了几个称为“SLF4J 绑定”的 jar 文件,每个绑定对应一个受支持的框架。

slf4j-log4j12-1.7.28.jar

绑定 log4j 1.2 版,这是一个广泛使用的日志框架。您还需要将 log4j.jar 放在您的类路径上。

日志4j 2

如果您使用的是 Log4j 2 或更高版本,您将需要一个与slf4j-log4j12. 该绑定由 Log4j 项目维护。根据 Log4j 文档

Log4j 2 SLF4J 绑定允许编码到 SLF4J API 的应用程序使用 Log4j 2 作为实现。

如果您希望 SLF4J 将日志记录路由到 Log4j,则必须同时提供这两个依赖项。同样,来自 Log4j 2 文档:

只需包含 Log4j 2 SLF4J Binding jar 以及 Log4j 2 jar 和 SLF4J API jar,即可使所有 SLF4J 日志记录由 Log4j 2 处理。

  • 请注意,`slf4j-log4j12` 中的“12”表示这是针对 Log4j 1.2,而不是 Log4j 2。如果要将其挂钩到 Log4j 2,请使用 `org.apache.logging.log4j:log4j-slf4j-impl `,不是 SLF4J 的 `slf4j-log4j12`。 (3认同)