事件来源
正常 用 SLF4J 写 log,每次写新的类,就需要重新写 logger,非常麻烦
private final static Logger logger = LoggerFactory.getLogger(xxx.class);
lombok @Slf4j :在类上添加 @Slf4j 注解,在方法中可以直接使用 log
具体报错
然而直接使用将报错:java: 程序包lombok不存在
添加 slf4j-api 依赖 后报错:SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
原因
原因: lombok 的 @Slf4j 只是静态引入 slf4j,但 lombok 包里面本身并不包含 slf4j 的实现包,所以会报错无法加载 slf4j 相关 class
解决
解决: 找一个基于 slf4j-api 的实现包即可,注入 logback,log4j 等等
如添加 slf4j-simple
依赖,并且不需要添加 slf4j-api
依赖
只需要 lombok
和 slf4j-simple
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.36</version>
</dependency>