1、控制台日志级别配置
1.1 application.yml具体配置
logging:
level:
com:
project:
controller: info
service: info
mapper: debug
1.2和1.3是扩展知识,看看即可
1.2 日志级别的功能来源
日志级别的核心功能由 底层日志框架 提供的,例如:
- Logback(Spring Boot 默认集成)
- Log4j2(可通过配置切换使用)
- Java Util Logging (JUL)
这些框架定义了 TRACE、DEBUG、INFO、WARN、ERROR 等标准日志级别,并负责根据级别过滤和输出日志信息。
日志级别的作用场景:
| 日志级别 | 用途 | 适用场景 |
|---|---|---|
| TRACE | 最详细调试信息,高频输出 | 开发环境深度调试 |
| DEBUG | 关键流程追踪 | 开发/测试环境问题定位 |
| INFO | 常规运行状态(如启动、服务调用) | 生产环境监控 |
| WARN | 潜在问题(如参数不合法) | 生产环境预警 |
| ERROR | 严重错误(如数据库连接失败) | 异常监控与告警 |
1.3 Spring Boot 的作用
1、Spring Boot 通过配置文件简化了日志级别的配置和管理,如1.1所示
2、多日志框架兼容:Spring Boot 通过 spring-boot-starter-logging(默认集成 Logback)或 spring-boot-starter-log4j2 支持切换底层日志框架,同时保持配置方式的一致性。
2、@Slf4j注解自动生成日志记录器
@Slf4j是 Lombok 提供的注解,其核心作用是 在编译时自动生成日志记录器。
2.1 导入依赖
- Lombok 依赖:需在 Maven 中添加 Lombok 依赖
- SLF4J 依赖:因为
@Slf4j基于 SLF4J 日志门面,需引入slf4j-api(Spring Boot 默认集成) - 日志实现依赖:如
logback-classic(默认)或log4j等(Spring Boot 默认集成)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
2.2 在类上加@Slf4j注解
当在类上添加@Slf4j后,Lombok 会在编译阶段自动插入以下代码:
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(当前类名.class);
@RestController
@RequestMapping("/user")
@Slf4j
@Api(tags = "员工管理")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/page")
@ApiOperation("用户分页查询")
public Result<PageResult> page(UserPageQueryDTO userPageQueryDTO) {
log.info("前端的参数:{}", userPageQueryDTO);
PageResult pageResult = userService.page(userPageQueryDTO);
return Result.success(pageResult);
}
}
2.3是扩展知识
2.3 为什么看不到log变量的声明?
Lombok 通过 编译期字节码增强 技术生成代码,因此在源代码中看不到log变量的声明。