由 log4j2 漏洞爆发引发的疑问,为什么这么多框架要引入 log4j2,不应该是仅引入 slf4j 吗

2021-12-13 01:30:14 +08:00
 jiangxin

可能之前未表述清楚,我认为最好的方式应该是框架引入 slf4j ,使用框架的项目引入 log4j2 或者其他实现

这个疑问之前就产生过,一直没有真正找寻过原因,此次核弹级漏洞引发整个圈内颤抖,是时候探究一下这个疑问了

7685 次点击
所在节点    程序员
30 条回复
aliensb
2021-12-13 01:32:34 +08:00
Slf4j 是门面,具体实现是 log4j2
jiangxin
2021-12-13 01:35:40 +08:00
@aliensb 这个没错,但不应该是框架引入 slf4j ,使用框架的项目引入 log4j2 或者其他实现
dreamramon
2021-12-13 06:28:22 +08:00
log4j2 的异步性能高啊
shyangs
2021-12-13 07:27:05 +08:00
平行宇宙.

React 框架統治了 Java 王國.

你永遠都有選擇的自由.

Browserify/Grunt/Gulp/Webpack
Redux/Mobx/Recoil
Redux-saga/Dva
material/antd/bootstrap
less/sass/postcss/css in js
shyangs
2021-12-13 07:31:06 +08:00
[現在的前端技術棧真的太惡心了!]( https://www.v2ex.com/t/821702 )
seaswalker
2021-12-13 08:03:57 +08:00
看到车仔就进来了
xuanbg
2021-12-13 08:10:47 +08:00
log4j 好用且性能高啊。从这次漏洞就能看得出来,log4j 真的是只有你想不到,没有他做不到呢。
hingbong
2021-12-13 08:12:19 +08:00
@jiangxin 现在不就是吗,你是低估了 Java 项目的数量了
chendy
2021-12-13 08:44:25 +08:00
spring-boot 如果不自己动的话是 logback
印象里只有 elasticsearch 是绑定 log4j2 的,毕竟有独立运行的需求,不能只有一个 slf4j
muooOOO
2021-12-13 08:49:11 +08:00
我车已崩
fpure
2021-12-13 09:09:20 +08:00
log4j 可以用 slf4j 桥接器换掉
jimmyismagic
2021-12-13 09:33:41 +08:00
log4j2 性能更好,我们 springboot 项目都要它
christin
2021-12-13 09:46:13 +08:00
@shyangs #4 我猜你想说 javascript ?
wineast
2021-12-13 09:49:22 +08:00
奇怪的是,我们用的是默认 springboot ,理论上应该用的是 logback 。但上周排查 进行依赖扫描的时候发现 log4j-api 被 log4j-to-slf4j,然后被 spring-boot-starter-logging 引入了,还是要修
如下:
| | | +--- org.springframework.boot:spring-boot-starter-logging:2.3.6.RELEASE
| | | | +--- ch.qos.logback:logback-classic:1.2.3
| | | | | +--- ch.qos.logback:logback-core:1.2.3
| | | | | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
| | | | +--- org.apache.logging.log4j:log4j-to-slf4j:2.13.3
| | | | | +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
| | | | | \--- org.apache.logging.log4j:log4j-api:2.13.3
FEINIAO233
2021-12-13 09:56:23 +08:00
@wineast 只有 log4j-api 一个依赖没事的,漏洞的代码在 log4j-core 包里
kilala2020
2021-12-13 10:31:42 +08:00
我也一直有这个疑惑,为什么这么整齐划一的搞 log4j2?
cheng6563
2021-12-13 10:59:57 +08:00
@wineast log4j-api 没问题的,就是把 log4j 的 api 转发到 slf4j 去了,slf4j 没问题就行了。
wineast
2021-12-13 11:04:32 +08:00
@FEINIAO233 感谢,客户那里用的扫描工具,都是直接扫关键词的,扫到了就要我们整改,现在还得排包
fighterhit
2021-12-13 11:46:27 +08:00
@FEINIAO233 log4j-api 也只是接口吗?那最终实现调的什么?
Wien
2021-12-13 11:51:37 +08:00
spring boot 本身就是开箱即用的框架,默认就有日志组件的实现。一键启动,该配的都帮你配好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821744

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX