@Slf4j注解

本文介绍了Spring Boot中@Slf4j注解,作者最初在Controller类中看到该注解,联想到log4j后查询其作用。使用@Slf4j可直接使用log对象,简化代码。使用时需引入lombok的maven依赖,在IDEA中还需添加lombok插件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Slf4j
最初在看到这个注解的时候是在一个Controller类中看到的

@Slf4j
@RestController
@RequestMapping("/api/pc")
publiuc class XXController{}

@RestController和@RequestMapping是SpringBoot中比较常见注解用于声明这是一个Controller以及请求的基础路径
那么在看到@Slf4j的第一眼的时候,联想到了log4j(只是单纯的因为他们长的非常像),然后就去查了一下他的作用:
 由于自己开启日志需要写上

 private  final Logger logger = LoggerFactory.getLogger(XXX.class);

为了方便起见就可以使用注解@Slf4j来直接使用log对象,简化了一行代码。。。
原来使用的就是logger.info("");这样的代码,现在就可以使用log.info("")
在使用中需要引入jar包import lombok.extern.slf4j.Slf4j;
跟着这个jar包去翻阅查到了这个jar包的层次结构

也就是说需要引进的maven依赖应是lombok,在IDEA中单纯的引入可能并不好使需要添加一个lombok的插件才能正常的使用
在这里插入图片描述
依赖如下:

		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
### 使用 SLF4J 注解及其相关问题 SLF4J 是一种流行的日志框架抽象层,允许开发人员通过统一接口记录应用程序的日志信息,而不必绑定到具体实现。为了简化代码编写过程,Lombok 提供了 `@Slf4j` 注解来自动生成一个名为 `log` 的静态字段实例化对象[^1]。 #### 添加依赖项 要在项目中使用 Lombok 和 SLF4J 功能,首先需要引入必要的 Maven 依赖项: ```xml <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.36</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.10</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <scope>provided</scope> </dependency> ``` 以上配置包含了 SLF4J API、Logback 日志实现以及 Lombok 工具库的支持[^4]。 #### 配置日志级别和输出格式 通常情况下,可以通过在项目的资源目录 (`src/main/resources`) 下创建 `logback.xml` 文件来进行详细的日志设置。下面是一个简单的 Logback 配置示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="STDOUT"/> </root> </configuration> ``` 该 XML 定义了一个控制台追加器,并设置了默认的日志级别为 INFO[^4]。 #### 编写带 @Slf4j 注解的类 当定义好所需的环境之后,就可以在一个 Java 类上标注 `@Slf4j` 来启用内置 logger 支持。例如: ```java import lombok.extern.slf4j.Slf4j; @Slf4j public class ExampleService { public void performAction() { log.info("Starting action..."); try { int result = divideNumbers(10, 0); log.debug("Result of division: {}", result); } catch (ArithmeticException ex) { log.error("Division by zero encountered", ex); } } private int divideNumbers(int numerator, int denominator) throws ArithmeticException { return numerator / denominator; } public static void main(String[] args) { new ExampleService().performAction(); } } ``` 在这个例子中展示了如何分别调用 info(), debug(), 和 error() 方法来打印不同类型的消息[^2][^3]。 #### 常见错误及解决方案 1. **未找到 Logger 实现**: 如果运行时抛出了类似于 “No implementation found for org.slf4j.Logger” 错误提示,则表明缺少实际的日志处理组件(如 Logback)。请确认已正确安装对应的 binding jar。 2. **无法解析 @Slf4j 注解**: 当编译阶段报错说找不到 lombok 所提供的注解时,请检查 IDE 是否启用了 annotation processor 插件支持。对于 IntelliJ IDEA 而言,可以在 Settings -> Build Tools -> Compiler 中勾选 Enable Annotation Processing 复选项[^5]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值