zoukankan      html  css  js  c++  java
  • spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法

    因为从Spring Boot 1.4开始,spring boot就不支持log4j了,必须是log4j2或者logback,具体两者如何配置以及NDC的支持可以参考spring boot精华版

    这里要讲的是如果刚好用的spring boot是1.4+或者应用使用了log4j2,但是依赖的三方使用的是log4j,该如何处理?默认情况下,如果log4j和log4j2实现都存在,spring boot启动时会提示无法初始化log4j,类似如下:

    log4j:WARN No appenders could be found for logger (org.I0Itec.zkclient.ZkConnection).
    log4j:WARN Please initialize the log4j system properly.

    然后日志一条都不打印。。。。
    其中方法之一如果三方库依赖的是SLF4J,就把log4j12的依赖排除掉,如下:
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_2.12</artifactId>
                <version>0.11.0.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

    这样使用log4j2的库日志时可以正常打印了,三方库依赖log4j的就会在运行期间仍然提示上述错误信息。

    此时如果强行把三方库依赖的log4j直接排除掉,在启动时会提示“java.lang.NoClassDefFoundError: org/apache/log4j/Logger”,这绝对是不可以接受的。

    如果三方库没有提供依赖log4j2的版本,可将依赖的 log4j 后,然后额外加上这个 log4j-1.2-api,如下:

            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_2.12</artifactId>
                <version>0.11.0.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-1.2-api</artifactId>
            </dependency>
  • 相关阅读:
    flash player over linux
    chmod 命令
    A*算法
    adb找不到设备
    ubuntu14.04安装wine以及国际版QQ
    linux man
    X-window
    linux file system
    linux command
    directUI
  • 原文地址:https://www.cnblogs.com/zhjh256/p/9726345.html
Copyright © 2011-2022 走看看