在通过 Lombok 的“@Slf4j”注释创建的“log”对象中找不到 error()、debug()、info() 方法

问题描述

有人可以帮我在 Lombok 中使用 @Slf4j 注释吗?

我更喜欢在我的 SpringBoot 应用程序中记录一些东西。为此,我想使用 Lombok 的 @Slf4j 注释。我在 IntelliJ IDEA 中安装了 Lombok 插件,打开“注释处理”,将 @Slf4j 注释添加到我的类并将 lombok 依赖项添加到我的 pom.xml 文件。现在我可以在类中找到对象“log”,但我不能对其应用任何日志方法(如 error()、debug()、info() 等)。为什么没有找到这些方法

IntelliJ IDEA 社区 2020.3
Lombok 插件捆绑 203.7717.56
龙目岛 1.18.6

在 pom.xml 中的依赖:

<properties>
    <lombok.version>1.18.6</lombok.version>
</properties>

<dependencies>
     <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <version>${lombok.version}</version>
     </dependency>
</dependencies>

登录我的课程:

import lombok.requiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@requiredArgsConstructor
@Service
public class ImportServiceImpl implements ImportService {
   ...
   public void importData() {
      log.info("some log");
   }
   ...
}

解决方法

Lombok 本身不带任何日志框架等依赖,需要自己添加日志框架依赖。

例如在您的情况下,添加以下依赖项,它将带来 SLF4J 以及 Logback 作为日志记录实现:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</dependency>
,

我已经准备好了一切。构建工作正常,我能够在没有任何编译错误的情况下运行应用程序。只是 IDE 在抱怨。

就我而言,我必须使缓存无效。

转到文件 > 使缓存无效(选择“清除文件系统缓存和本地历史记录”)> 使缓存无效并重新启动。

希望有效。