obkv-habse-client依赖的log4j版本过低,无法兼容高版本的log4j

【 使用环境 】
测试环境
【 OB or 其他组件 】
obkv-hbase-client
【 使用版本 】
2.3.0
【问题描述】
obkv-hbase-client依赖的slf4j好像还是很老的2.13.x版本,与2.21.x版本的不兼容(构造函数不一样)

1 个赞

从2.19版本开始 为了减少 log4j-slf4j-impl和 log4j-slf4j20-impl的差异

官方修改了 org.apache.logging.slf4j.Log4jLogger构造函数 参考下方

使用高版本在客户端初始化时会导致 com.alipay.sofa.common.log.factory.Log4j2LoggerSpaceFactory#newLogger执行失败

推荐使用以下版本

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.18.0</version>
</dependency>

项目里面使用的版本2.21.x,目前无法直接降到2.18.0,还有什么方案么

可以降级吗?还是说必须要用2.21.x版本,如果没有特殊要求直接把项目中的高版本排掉就行了

降级不了,项目中依赖的spring-boot-starter-log4j2

目前没有好的办法 可以给你提供1个思路

  1. 下载客户端代码
  1. 修改Table客户端中 sofa-common-tools 版本为2.x 并编译
  • sofa 2.x要求JDK最小版本为17
  • slf4j使用2.x版本
  1. 使用上方的Table客户端版本依赖去编译HBase客户端
  2. 编译自己的工程
1 个赞