logback日志打印不出来包冲突解决方案

问题描述

在web应用开发过程中发现部署在服务器中的应用日志突然不见了,服务器中只有tomcat或jboss的重启启动日志在打印,但应用本身设置的日志文件没有打印出来。

问题分析

该应用分支是刚从主干check下来的,而且主干分支在服务器上部署后是正常的,所有日志文件及文件内的日志信息都能正常打印和显示。

根据之前经验判断由于应用部署是成功的,并且提交的新代码中只是在maven工程的pom文件中引入了新的依赖包,初步怀疑是由于新引入的包导致logback包冲突引起的。

解决方案

通过mvn dependency命令打出来该maven工程的依赖数,果然出现了两个不同版本的logback引用情况。

使用exclusion命令对低版本的logback包进行排除操作,参考示例如下:

 

<exclusions>
  <exclusion>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
  </exclusion>
</exclusions>

 主要是logback-classic的包冲突引起的,经过唯一版本确认后重新部署应用,日志顺利打印出来。

问题总结

一开始以为是log4j的包冲突引起的,后来排查结果却是logback包问题,之前对这两两者区别不是很了解,经过这次问题排查也顺便学习了一下这方面的知识:

logback介绍

LogBack被分为3个组件,logback-core, logback-classic 和 logback-access。其中

logback-core提供了LogBack的核心功能,是另外两个组件的基础;

logback-classic则实现了Slf4j的API,所以当想配合Slf4j使用时,需要将logback-classic加入classpath;

logback-access是为了集成Servlet环境而准备的,可提供HTTP-access的日志接口。

由于logback在技术实现及性能上具有无可比拟的优势,现在一般都是使用logback,慢慢替代log4j。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值