当前位置:网站首页>log4j-slf4j-impl cannot be present with log4j-to-slf4j
log4j-slf4j-impl cannot be present with log4j-to-slf4j
2022-08-03 22:22:00 【Master_Shifu_】
背景:
在修复logback远程执行漏洞时报错
log4j-slf4j-impl cannot be present with log4j-to-slf4j
这个错误的意思是 log4j-slf4j-impl 和 log4j-to-slf4j 这两个包不能同时存在。
那么为什么这两个包不能同时存在呢?我们先来看一下这两个包的定义:
log4j-slf4j-impl
Apache Log4j SLF4J Binding: The Apache Log4j SLF4J API binding to Log4j 2 Core
log4j-to-slf4j
Apache Log4j to SLF4J Adapter: The Apache Log4j binding between Log4j 2 API and SLF4J
从上述定义可以看出,log4j-slf4j-impl 主要是 log4j 对 slf4j 接口的实现,而 log4j-to-slf4j 则是 slf4j 对 log4j 接口的适配。
解决方案
1. 最复杂的方案是:逐个组件,挨个排查
如果springboot 项目使用log4j2日志框架,就将项目中引入 spring-boot-starter-logging及其引用jar 的地方,全部排查掉;或者继续使用springboot的logback,
那么就将log4j2 以及其jar的地方,通排查。— 耗时并且可能排查不干净
2. 使用pom全局排除
即将spring-boot-starter-logging 全部排除或者是将 spring-boot-starter-log4j2 的地方全部排除。
使用springboot 默认的logback 日志输出日志设置 :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 修复logback远程执行漏洞-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.9</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.9</version>
<scope>compile</scope>
</dependency>
边栏推荐
- Network basic learning series four (network layer, data link layer and some other important protocols or technologies)
- Diazo Biotin-PEG3-DBCO|重氮化合物修饰生物素-三聚乙二醇-二苯并环辛炔
- HCIP第十五天
- 21天打卡挑战学习MySQL——《MySQL工具的使用》第一周 第二篇
- 封装、包、访问权限修饰符、static变量
- 376. Wiggle Subsequence
- UVa 437 - The Tower of Babylon(白书)
- Shell编程的条件语句
- CAS:122567-66-2_DSPE-Biotin_DSPE-Biotin
- What is Adobe?
猜你喜欢
趣链的产品构架
[N1CTF 2018]eating_cms
pikachu Over permission 越权
老板:公司系统太多,能不能实现账号互通?
Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 论文笔记
October 2019 Twice SQL Injection
云平台建设解决方案
noip初赛
FVCOM 3D Numerical Simulation of Hydrodynamics, Water Exchange, Dispersion and Transport of Oil Spills丨FVCOM Model Watershed, Numerical Simulation Method of Marine Water Environment
网络基础学习系列四(网络层,数据链路层和一些其他重要协议或技术)
随机推荐
关于Yii2批量更新的操作
如何设计 DAO 的 PoW 评判标准 并平衡不可能三角
目标检测的国内外研究现状
老板:公司系统太多,能不能实现账号互通?
488. Zuma Game
Data_web(九)mongodb增量同步到mongodb
嵌入式开发:嵌入式基础——代码和数据空间揭秘
Research status of target detection at home and abroad
一文带你了解软件测试是干什么的?薪资高不高?0基础怎么学?
2022的七夕,奉上7个精美的表白代码,同时教大家快速改源码自用
Cisco ike2 IPSec配置
HDU 5655 CA Loves Stick
亿流量大考(2):开发一套高容错分布式系统
函数,递归以及dom简单操作
October 2019 Twice SQL Injection
如何基于WPF写一款数据库文档管理工具(二)
云计算国内外发展现状
线上服务器老是卡,该如何优化?
决策树、GBDT、XGBOOST树的可视化
嵌入式系统:GPIO