除了 Lombok 依赖项之外,为什么还需要添加 Slf4j 依赖项才能使日志记录正常工作?

发布于 2025-01-16 21:52:01 字数 848 浏览 0 评论 0原文

为什么我必须添加这 2 个依赖项才能让我的 Lombok @Slf4j 日志记录正常工作?我正在定义一个 log4j.properties 文件,在其中启用对某些第 3 方包的调试。如果我不添加这 2 个 slf4j 依赖项,则日志记录将不起作用。这不应该仅适用于 Lombok 依赖项吗?

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.36</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.36</version>
    </dependency>

这是我的龙目岛依赖项:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.22</version>
    </dependency>

Why am I having to add these 2 dependencies in order for my Lombok @Slf4j logging to work? I am defining a log4j.properties file, where I enable debug on some 3rd party packages. If I don't add these 2 slf4j dependencies, the logging doesn't work. Shouldn't this work with just the Lombok dependency only?

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.36</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.36</version>
    </dependency>

Here is my lombok dependency:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.22</version>
    </dependency>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北风几吹夏 2025-01-23 21:52:01

根据Lombok doc,Lombok注释@Slf4j创建

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

因此它需要slf4j依赖。并且由于 slf4j 只是 log4j、log4j2 和 logback 等各种实际日志库的抽象,因此需要桥依赖 slf4j-log4j12

使用 slf4j 抽象可以方便地切换到另一个日志库。

如果您只想坚持使用 log4j2 日志库,您只需添加 log4j2 依赖项 使用 @Log4j2 创建

private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class)

According to Lombok doc, Lombok annotation @Slf4j creates

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

Therefore it need slf4j dependencies. And because slf4j is just an abstraction of various actual logging library such as log4j, log4j2 and logback, bridge dependencies slf4j-log4j12 is required.

Using slf4j abstraction is convenient for switching to another logging library.

If you just want to stick to log4j2 logging library, you can just add log4j2 dependencies use @Log4j2 which creates

private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文