@slf4j是lombok提供的注解,用于在编译期自动生成private static final logger log字段,支持debug/info/warn/error等slf4j标准日志方法,字段名固定为log、不可修改、仅当前类可见,需引入lombok、slf4j-api及具体实现并启用ide注解处理。

@Slf4j 是 Lombok 提供的一个便捷注解,用于自动生成 SLF4J 日志器(Logger)字段,省去手动声明和初始化的样板代码。
自动注入 log 字段
在类上添加 @Slf4j 后,Lombok 会在编译期生成一个名为 log 的静态 org.slf4j.Logger 实例,类型为当前类。无需再写:
private static final Logger log = LoggerFactory.getLogger(YourClass.class);
只需一行:
@Slf4j
public class UserService { ... }
支持常见日志级别调用
生成的 log 字段可直接使用标准 SLF4J 方法,如:
log.debug("User loaded: {}", userId)log.info("Processing request for {}", username)log.warn("Fallback triggered for {}", orderId)log.error("Failed to save order", ex)
参数占位符({})和异常自动处理都保留原生 SLF4J 行为,性能无损耗。
注意命名与作用域
默认字段名为 log,不可修改;它是 private static final,仅在当前类内可用。若需继承或共享日志器,仍需显式定义。子类不会自动获得父类的 log 字段。
依赖与配置前提
确保项目已引入:
- Lombok(编译时注解处理器)
- SLF4J API(如
slf4j-api) - 一个具体实现(如
logback-classic或slf4j-simple)
IDE 需启用注解处理(如 IntelliJ 中勾选 Enable annotation processing),否则编辑器可能报红,但编译仍可通过。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











