springboot 排除默认的logback 改成slf4j报错

问题是这样的,排除springboot 默认的logback 改成 使用slf4j 的时候,出现了报错,请教下是否@SpringBootApplication 注解上也需要排除

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>

  <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>
@Slf4j
@RestController
public class LogController {
    
    @GetMapping("/")
    public void test(){
        log.info("hello world");
    }
}

img

springboot 默认用的就是 slf4j+logback,slf4j 只是一个门面,一套接口,logback 是这套接口的一个实现。slf4j与logback的关系,就好像jdbc与mysql-driver.jar的关系,一个是标准,一个是实现。所以不用排除logback

@Slf4j注解用这个依赖呃

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

slf4j只是日志门面,logback是实现,不需要排除

如果想使用@Slf4j注解需要添加

            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
                <scope>provided</scope>
            </dependency>


@Slf4j需要引入lombok插件

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

日志框架的作用:是用来记录系统的一些行为的,可以通过日志来发现定位问题,在出现问题之后日志是好的一个帮手。

市面上的日志框架大概有这些:JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j....等等。

SLF4j(Simple Logging Facade for Java) 是一个抽象的门面,需要实现。
Log4j JUL(java.util.logging) Log4j2 Logback都可以实现它。

上边选一个门面(抽象层)、下边来选一个实现;
日志门面: SLF4J;
日志实现:Logback, Log4j2;

SpringBoot选用的日志框架和实现为SLF4j和logback。

你截图和你问的问题是两件事儿

1、Slf4j 是日志库的统一规范接口,这个只是定义了接口,是没有实现的,它的实现有logback、slf4j-simple等;
2、你问的@SpringBootApplication注解上的@Slf4j 这个是lombok的实现,程序代码中需要引入lombok组件。

解决你截图错误的办法就是 logback 不用注释,如果还提示错误,就需要安装 lombok 组件,可以直接 https://projectlombok.org/downloads/lombok.jar 下载双击运行,重启IDE即可。

大家说的都很有道理,你的错误在于

img

可以发出这个类代码吗?