在SpringBoot应用程序中使用Java的简单日志记录外观

时间:2019-11-16 11:38:52

标签: java spring spring-boot slf4j slf4j-api

我想使用@ Slf4j批注,因此我将此依赖项导入了pom.xml文件

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

但我遇到错误无法解析符号Slf4j

@Service
@Slf4j
@Transactional(readOnly = true)
public class PasswordResetTokenService {
..
}

2 个答案:

答案 0 :(得分:1)

我相信@ Slf4j注释实际上不是来自Slf4j,而是来自Lombok。请查看此链接,它似乎提供了一个非常好的模板,从https://howtodoinjava.com/spring-boot2/logging/logging-with-lombok/

开始

如果您查看Application.java的摘录。注释的导入来自lombok

  

导入lombok.extern.slf4j.Slf4j;

答案 1 :(得分:1)

@ Slf4j注释是Lombok注释,在slf4j依赖项中不存在。

如果要使用此注释而不是声明记录器字段,则需要向Lombok添加额外的依赖项:

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
</dependency>

对于Spring Boot,父POM可能已经指定了版本。然后,您不再需要声明特定版本。

请参阅:

https://projectlombok.org/features/log

https://projectlombok.org/api/lombok/extern/slf4j/Slf4j.html