需要详细解释一下lombok注解 和日志框架的关系
@Slf4j: 可以结合Logback 或者 Log4j使用,默认是前者,不需要导入任何日志依赖(只需要导入lombok即可),如果要用后者,需要排除Logback依赖,导入Log4j依赖。
注意:Slf4j是抽象接口,Logback和Log4j是具体实现,具体日志框架有log4j,log4j2,logback,jul(小项目,内置,不需要引入依赖)
在 Spring Boot 3 项目中,使用 @Slf4j 和 Log4j2 日志的步骤如下:
1. 排除默认的 Logback,使用 Log4j2
Spring Boot 默认使用 Logback 作为日志实现。如果你希望使用 Log4j2,需要排除 Logback,并引入 Log4j2 的依赖。
2. 配置 Log4j2
修改 pom.xml
在 pom.xml
中排除默认的 Logback 依赖,并添加 Log4j2 依赖:
<dependencies>
<!-- 排除 Spring Boot 默认的 Logback -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<scope>provided</scope>
</dependency>
<!-- 引入 Log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
</dependencies>
3. 创建 Log4j2 配置文件
在 src/main/resources
目录下创建 log4j2-spring.xml
文件,配置 Log4j2 的日志输出格式、级别等。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<!-- 控制台输出 -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} - %msg%n" />
</Console>
<!-- 文件输出 -->
<File name="File" fileName="logs/app.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} - %msg%n" />
</File>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
4.日志级别
springboot3默认使用级别是info日志框架是logback
5.日志粗细粒度控制
6.日志输出到文件
两种方式,只能选一个。