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

Can't find error(), debug(), info() methods in 'log' object which is created via Lombok's '@Slf4j' annotation

谁能帮我解决 Lombok 中的 @Slf4j 注释问题?

我更喜欢在我的 SpringBoot 应用程序中记录一些东西。为此,我想使用 Lombok 的 @Slf4j 注释。我在我的 IntelliJ IDEA 中安装了 Lombok 插件,打开 'Annotation processing',将 @Slf4j 注释添加到我的 class 并将 lombok 依赖项添加到我的 pom.xml 文件。现在我可以在 class 中找到对象 '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>

正在登录我的 class:

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 在抱怨。

在我的例子中,我不得不使缓存无效。

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

希望有用。