日志无法打印问题总结

日志无法打印问题总结

现象: log4j2运行环境可以生成日志,但是没有任何打印信息。

1 日志无法打印

最近新开发的服务,k8s容器部署后,发现log4j2的日志无法打印,定义的日志都生成了相关的日志文件,但是没有打印任何内容。恍惚记得idea启动的时候有一些黄色的提示,但是当时日志正常打印了就没有理睬,看来还是和当初自己忽视的问题有关系,赶紧打开idea,启动查看重新审视了相关报错,如下所示:

SLF4J: Class path contains multiple SLF4J bindings.

image-20210222180250984

原来是slf4j相关的包在多个jar中存在,这里主要是zookeeper的一个依赖,有同样的jar依赖,原来是spring常见的jar‘冲突问题,这里解决方法总结如第二章所示。

2 日志包重复问题处理-排除jar包

gradle修改如下所示

    compile('org.apache.zookeeper:zookeeper:3.4.8') {
        exclude group: 'org.slf4j', module: 'slf4j-log4j12' //by both name and group
    }

maven修改如下所示:

<dependency>
    <groupId>org.apache.zookeeper</groupId>
     <artifactId>zookeeper</artifactId>
     <version>3.4.8</version>
     <!--排除这个slf4j-log4j12-->
     <exclusions>
         <exclusion>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
         </exclusion>
     </exclusions>
 </dependency>

spring整体排除依赖

configurations {
    all {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    }
}

3 问题反思

  1. 重视墨菲定律:不要放过开发过程中遇到的任何警告和提示,也许本地运行不是错误,可能实际跑起来就会容易出问题。墨菲定律说的就是坏事情总会发生,不要忽视他的存在,作为开发更应该重视任何潜在的问题。
  2. 学习maven和gradle排除依赖的一些简单实践,作为记录留存。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值