Apache Log4j 爆核弹级漏洞,Spring Boot 默认日志框架就能完美躲过。。。

简介: 突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!如果你使用的是 Log4j 1.x、Logback 或者其他日志框架,这次就可以幸免于难。

这两天沸沸扬扬的 Log4j2 漏洞门事件炒得热火朝天:


突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!


如果你使用的是 Log4j 1.x、Logback 或者其他日志框架,这次就可以幸免于难。


Log4j 1.x 就不用说了,这是老古董了,也就是传说中的老牌日志框架 "Log4j",曾经无处不在,现在很少用到了,除非在一些老系统中,新项目基本都是 Log4j 2.x 和 Logback 了。


Log4j 2.x 就是对 Log4j 1.x 的升级,得到了重大改进,并且吸引了 Logback 中的优秀设计并加以优化,现在得比较多。


Logback 同样也是 Log4j 的作者开发的,拥有更多丰富的特性,是 Log4j 1.x 的替代。


Log4j 2.x 用得比较多,一是因为它是 Apache 顶级项目,二是因为它牛逼的异步日志记录性能:


image.png


更多性能对比参考:


https://logging.apache.org/log4j/2.x/performance.html


可以看到,同样都是异步模式,当线程不断增多时,Log4j 2.x 的性能吊打 Log4j 1.x 和 Logback,Logback 和 Log4j 则不相上下。


单从性能来说,Log4j 2.x 无疑是日志框架中的王者,但 Logback 也不甘下风,它凭借作为 Spring Boot 中的默认日志框架,Logback 也得到大量应用。


image.png


如图,如果我们没有指定任何其他日志 Starter,默认的就是 Logback。


image.png


它是从 Spring Boot 默认依赖中带出来的,更多可以看栈长在公众号Java技术栈分享过的《Spring Boot 自定义日志教程》。


很多粉丝说用的 Logback,没有躺枪,可能也是因为使用了 Spring Boot 默认的日志配置吧,Spring Boot 机智了一回?


为什么 Logback 能成为 Spring Boot 的默认日志框架?


个人认为,主要原因是由于 Logback 是原生 SLF4J API(目前最主流的日志门面接口) 的实现,可以很轻松的切换到其他日志框架,而 Log4j 并非原生实现,它们结合 SLF4J API 都需要一个中间适配层。


这个可在参考一张国外的图:


image.png


来源:https://krishankantsinghal.medium.com/logback-slf4j-log4j2-understanding-them-and-learn-how-to-use-d33deedd0c46


SLF4J 接口的直接原生实现是 Logback,但也可以通过中间适配层连接 Log4j 等其他非原生实现的日志框架,你看明白了吗?


Log4j 2.x vs Logback 怎么选?


从上面的性能图来看,Log4j 在并发写到达 4 个线程/秒及以上,性能就开始碾压 Logback 了。


所以,如果日志量很大,对性能又有要求,那么 Log4j 2.x 无疑是首选,否则用啥都无所谓,即对日志记录没有性能要求,日志记录的快慢不会影响系统正常运行,毕竟 Logback 是 SLF4J 原生支持,一般的系统完全足够应对了。


漏洞是不可避免的,Linux、Tomcat 也经常爆严重漏洞,我们依然要用,反过来,Log4j 2.x 也是如此,不要因为一个框架出现漏洞就马上换其他框架,也许其他框架也有漏洞,只是没有爆出来而已。


不多说了,最后,栈长再通知一次,没修复的,尽快了:


突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!



相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4607 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
1523 3
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
592 5
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
769 5
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
903 1
|
SQL XML 监控
SpringBoot框架日志详解
本文详细介绍了日志系统的重要性及其在不同环境下的配置方法。日志用于记录系统运行时的问题,确保服务的可靠性。文章解释了各种日志级别(如 info、warn、error 等)的作用,并介绍了常用的日志框架如 SLF4J 和 Logback。此外,还说明了如何在 SpringBoot 中配置日志输出路径及日志级别,包括控制台输出与文件输出的具体设置方法。通过这些配置,开发者能够更好地管理和调试应用程序。
551 0
|
6月前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
1061 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
539 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
8月前
|
SQL 人工智能 数据挖掘
Apache Flink:从实时数据分析到实时AI
Apache Flink 是实时数据处理领域的核心技术,历经十年发展,已从学术项目成长为实时计算的事实标准。它在现代数据架构中发挥着关键作用,支持实时数据分析、湖仓集成及实时 AI 应用。随着 Flink 2.0 的发布,其在流式湖仓、AI 驱动决策等方面展现出强大潜力,正推动企业迈向智能化、实时化的新阶段。
902 9
Apache Flink:从实时数据分析到实时AI
|
8月前
|
SQL 人工智能 API
Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
Apache Flink 2.1.0 正式发布,标志着实时数据处理引擎向统一 Data + AI 平台迈进。新版本强化了实时 AI 能力,支持通过 Flink SQL 和 Table API 创建及调用 AI 模型,新增 Model DDL、ML_PREDICT 表值函数等功能,实现端到端的实时 AI 工作流。同时增强了 Flink SQL 的流处理能力,引入 Process Table Functions(PTFs)、Variant 数据类型,优化流式 Join 及状态管理,显著提升作业稳定性与资源利用率。
794 0

推荐镜像

更多