springBoot 注入@Slf4j,框架中的方法无法调用。。。

本文介绍如何通过在项目中引入Lombok库并使用@Slf4j注解来简化日志记录过程,包括配置步骤、代码示例及IDEA中安装Lombok插件的方法。

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

如果不想每次都写private  final Logger logger = LoggerFactory.getLogger(XXX.class); 可以用注解@Slf4j

一、在pom文件加入依赖

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
</dependency>

二、代码

package com.sell;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 *   日志测试
 */

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LoggerTest {

    private  final Logger logger = LoggerFactory.getLogger(LoggerTest.class);
    /**
     * 一、传统方式实现日志
     */
    @Test
    public  void test1(){
        logger.debug("debug message");
        logger.warn("warn message");
        logger.info("info message");
        logger.error("error message");
        logger.trace("trace message");
    }


    /**
     * 二、注解方式实现日志
     */
    @Test
   public  void test2(){
        log.debug("debug message");
        log.warn("warn message");
        log.info("info message");
        log.error("error message");
        log.trace("trace message");
    }

}

 

输出如下:

因为默认是输出 info之上的 , 由下图可知 debug,trace不输出

 

三、注意:如果注解@Slf4j注入后找不到变量log,那就给IDE安装lombok插件,、

下面以idea为例

1、File  → settings →  Plugins,  然后点击“Browse repositories” 如图

 

2、输入 lombok 搜索插件, 点install安装,安装完重启idea

 

 

这时候输入 log就可以有提示了

### 如何在 Spring Boot 3 中使用 SLF4J 注解 为了在 Spring Boot 3 应用程序中利用 SLF4J 进行日志记录,开发者可以采用特定的注解方式简化这一流程。虽然官方文档主要围绕着通过编程的方式创建 `Logger` 实例来实现日志功能[^2],但在实际操作过程中,借助 Lombok 提供的 `@Slf4j` 或者 `@Log` 类型的注解能够极大程度上减少样板代码。 #### 添加必要的依赖项 确保项目的 `pom.xml` 文件包含了与 Spring Boot 版本相匹配的日志库支持: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- 如果想要使用Lombok提供的@Slf4j --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> ``` 上述 XML 片段展示了如何引入与 Spring Boot 兼容良好的 Log4j2 日志框架以及用于自动生成 logger 对象的 Lombok 插件[^1]。 #### 使用 @Slf4j 注解定义 Logger 当集成了 Lombok 后,在类级别声明 `@Slf4j` 可以自动注入静态 final 的 `private static final org.slf4j.Logger log = LoggerFactory.getLogger(YourClass.class);` 成员变量到目标类中。这样做的好处是可以让每次调用日志方法时不再重复书写相同的初始化语句。 ```java import lombok.extern.slf4j.Slf4j; // 自动导入所需的logger实例 @Slf4j public class ExampleService { public void performTask() { try { // 执行某些业务逻辑... // 记录信息级别的消息 log.info("执行完成"); } catch (Exception e) { // 错误处理并记录堆栈跟踪 log.error("发生异常", e); } } } ``` 这段 Java 代码片段演示了怎样运用 `@Slf4j` 来便捷地获取 logger 并输出不同严重性的日志条目。 #### 调整日志级别和格式化输出 默认情况下,Spring Boot 将控制台中的日志级别设为 INFO 。如果希望调整全局或者针对某个包/类别的具体行为,则可以在 application.properties 或 application.yml 文件内作出相应修改: ```properties logging.level.root=WARN logging.level.com.example=DEBUG ``` 以上属性设置表明根日志器仅显示警告及以上优先级的消息;而 com.example 下的所有组件都将启用调试模式下的全部日志输出[^4]。 此外,还可以进一步定制日志模板样式,比如添加时间戳、线程名等额外上下文信息给每一条日志记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值