Springboot/phoenix-client工程log4j与logback冲突解决

本文记录了在springboot+phoenix-client项目中将log4j更换为logback的过程,针对phoenix-client全量运行包导致的冲突问题提供了解决方案,并详细介绍了通过设置系统属性来指定使用slf4j作为日志工厂的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

因公司业务需要,要将原来的springboot+phoenix-client的工程使用的log4j换成logback,其中的一些冲突采坑记录;

二、遇到的问题及解决方案

Q1,因phoenix-client是从apache-phoenix-4.10.0-HBase-1.2-bin.tar中拷贝出来的,它其中phoenix-4.10.0-HBase-1.2-client.jar是全量runable运行包(而非maven依赖关系),所以就导致了问题根源,即使:<exclusion>log4j</exclusion>也无用;

解决方案:

1. 检查是否引入jcl-over-slf4j包;

2. 可在SpringApplication.run(BigDataOpenBootstrap.class, args);启动之前显示指定使用slf4jLogFactory

System.setProperty("org.apache.commons.logging.LogFactory","org.apache.commons.logging.impl.SLF4JLogFactory");

再次启动,OK!!!

源码跟踪(原理):commons-logging-1.1.1.jar org.apache.commons.logging.LogFactory.getFactory()

/Users/dushaojun/Library/Java/JavaVirtualMachines/ms-17.0.15/Contents/Home/bin/java -Dproject.name=aidemo12345 -Ddruid.load.spifilter.skip=true -DlimitTime=100 -Dhsf.consumer.init.accumulate.timeout=3000 -Dspring.hsf.max-wait-address-time=-1 -Dserver.tomcat.additional-tld-skip-patterns=*.jar -Dconfigserver.client.timerpersist=false -Dconfigserver.client.timerpersist.initMins=1 -Dconfigserver.client.cacheDelayTime=1 -javaagent:/Users/dushaojun/.thub-tool/isimu-sandbox/boot/isimu-boot.jar=/Users/dushaojun/.thub-tool/isimu-sandbox/ -agentpath:/Users/dushaojun/.thub-tool/isimu-sandbox/native/libisimu-aarch64.dylib -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=56004:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/dushaojun/Desktop/aidemo12345/target/classes:/Users/dushaojun/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.5.4/spring-boot-starter-web-3.5.4.jar:/Users/dushaojun/.m2/repository/org/springframework/boot/spring-boot-starter/3.5.4/spring-boot-starter-3.5.4.jar:/Users/dushaojun/.m2/repository/org/springframework/boot/spring-boot/3.5.4/spring-boot-3.5.4.jar:/Users/dushaojun/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.5.4/spring-boot-autoconfigure-3.5.4.jar:/Users/dushaojun/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.5.4/spring-boot-starter-logging-3.5.4.jar:/Users/dushaojun/.m2/repository/ch/qos/logback/logback-classic/1.5.18/logback-classic-1.5.18.jar:/Users/dushaojun/.m2/repository/ch/qos/logback/logback-core/1.5.18/logback-core-1.5.18.jar:/Users/dushaojun/.m2/repository/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar:/Users/dushaojun/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.24.3/log4j-to-slf4j-2.24.3.jar:/Users/dushaojun/.m2/repository/org/apache/logging/log4j/log4j-api/2.24.3/log4j-api-2.24.3.jar:/Users/dushaojun/.m2/repository/org/slf4j/jul-to-slf4j/2.0.17/jul-to-slf4j-2.0.17.jar:/Users/dushaojun/.m2/repository/j
最新发布
07-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值