引入log4j2不生效,会和logback冲突,默认使用的还是logback

springboot 工程通过maven引入Log4j2 ,会报:

img


引入的依赖:

img

网上说是自带的logback和 引入的log4j2 冲突了,要用exclusions 排除下logback,但是没用,还是一样的现象:
如下:

img

而且感觉实际代码中跑的还是用的logback的,不是引入的;

按照提问者的方式导入后,包括排除logback
导入log4j-slf4j-impl-2.9.1.jar报错,应该是和内部包冲突
删掉后,报SLF4JLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext错误
网上查了有log包冲突,故排除之,最后配置文件里改成:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-to-slf4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

还原一下依赖:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!--排除logback-->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--log4j2 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

这个不影响使用,建议用logback就行

给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Log4j2配置及与Logback对比

参考这个配置 使用log4j2 https://www.cnblogs.com/Baker-Street/p/16170155.html
重点是要把logback的jar包排除掉, 因为如果有logback的jar包的话 springboot会优先用logback的。

把log4j2删了吧,确实冲突了