美文网首页
Spring Boot 项目 logback 升级 log4j2

Spring Boot 项目 logback 升级 log4j2

作者: KLOOOP | 来源:发表于2018-09-13 11:23 被阅读0次

    今天把一个Spring Boot的日志框架由默认的logback升级为log4j2, 过程如下:

    1. 导包
      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
    
    1. 写配置
      在resources下增加log4j2.xml的配置文件
    2. 启动
      正常情况下控制台日志样式已经发生了变化
      卧槽怎么没变化???什么情况, 怎么破...
      看项目启动时控制台打印如下
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/Users/kayz/.m2/repository/ch/qos/logback/logback-classic/1.1.11/logback-classic-1.1.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/Users/kayz/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.7/log4j-slf4j-impl-2.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
    

    明明我已经排除了这么还是绑定上了logback?? 说明还是有其他包引了logback..
    使用 mvn dependency:tree 分析一下:

    [INFO] +- org.springframework.boot:spring-boot-starter-aop:jar:1.5.15.RELEASE:compile
    [INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.5.15.RELEASE:compile
    [INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.15.RELEASE:compile
    [INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.11:compile
    [INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.11:compile
    [INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
    [INFO] |  |  \- org.yaml:snakeyaml:jar:1.17:runtime
    [INFO] |  +- org.springframework:spring-aop:jar:4.3.18.RELEASE:compile
    [INFO] |  |  \- org.springframework:spring-beans:jar:4.3.18.RELEASE:compile
    [INFO] |  \- org.aspectj:aspectjweaver:jar:1.8.13:compile
    [INFO] +- org.springframework.boot:spring-boot-starter-cache:jar:1.5.15.RELEASE:compile
    [INFO] |  +- org.springframework:spring-context:jar:4.3.18.RELEASE:compile
    [INFO] |  |  \- org.springframework:spring-expression:jar:4.3.18.RELEASE:compile
    [INFO] |  \- org.springframework:spring-context-support:jar:4.3.18.RELEASE:compile
    [INFO] +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.5.15.RELEASE:compile
    

    发现aop这个包捣的鬼, 接着排除

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

    问题解决

    相关文章

      网友评论

          本文标题:Spring Boot 项目 logback 升级 log4j2

          本文链接:https://www.haomeiwen.com/subject/gqcwgftx.html