【发布时间】:2021-03-30 18:47:47
【问题描述】:
有人可以帮我在 Lombok 中使用 @Slf4j 注释吗?
我更喜欢在我的 SpringBoot 应用程序中记录一些内容。为此,我想使用 Lombok 的 @Slf4j 注释。我在 IntelliJ IDEA 中安装了 Lombok 插件,打开“注释处理”,将 @Slf4j 注释添加到我的类中,并将 lombok 依赖项添加到我的 pom.xml 文件中。现在我可以在类中找到对象“日志”,但我不能对其应用任何日志方法(如 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");
}
...
}
【问题讨论】:
-
对象上显示了哪些方法?有吗?而且您还确定您在类路径上有 slf4j 依赖项?
-
@dunni 没有任何方法。 IDE 提供继续我的“日志”。带有'args'、'field'、'cast'、'castvar'等java构造简写形式。不,我不确定(见截图 - prnt.sc/1104hgm)。我想,如果我添加 lombok 依赖项,那么 slf4j 将传递(隐式)添加到我的项目中。如果不是,我应该为 slf4j 添加额外的依赖项吗?
-
不,Lombok 不添加任何传递依赖项。在您的情况下,如果您添加 spring-boot-starter-logging,则您拥有日志记录所需的所有依赖项。
-
@dunni 非常感谢!你帮了我!我必须添加依赖项 spring-boot-starter-logging (或者依赖项 logbook-spring-boot-starter),但它一次对我不起作用,我还必须单击“重新加载所有 Maven 项目”按钮我的 IntelliJ IDEA 的 Maven 选项卡,因为由于某种原因,在添加提到的依赖项时,我没有立即获得效果
-
关于 IntelliJ 问题,当您在 pom.xml 中进行任何更改时,还有启用自动导入的设置。您可以在 Settings -> Build, Execution, Deployment -> Build Tool 中找到它,然后勾选“Reload project after changes in the build script”,勾选“Any changes”。
标签: java spring-boot slf4j lombok intellij-lombok-plugin