JetBrains 宣布 IntelliJ 平台将完全停止使用 Log4j,并切换到 java.util.logging 作为标准日志框架。
官方表示,基于 IntelliJ 平台的 IDE 不受 Log4j 漏洞的影响,因为它们使用了 Log4j 1.2 的修复版本,并删除了所有与网络相关的代码,而且 Log4j 库的第 1 版和第 2 版是两个完全不同的代码库,具有不兼容的 API。但即便如此,一些自动化安全工具仍然将他们使用的“旧”版本 Log4j 标记为安全漏洞。
据介绍,IntelliJ 对日志框架的要求相当低,其需要的唯一功能是记录到文件和控制台,以及为代码库的不同部分配置日志级别的可能性。所有这些要求都包含在作为 JDK 一部分的标准日志 API (java.util.logging) 中。为了避免错误的安全警报以及减少潜在的攻击面,IntelliJ 平台删除 Log4j 组件并切换到使用 java.util.logging 作为标准日志框架,这些更新将在 2022.1 中发布。
此外,由于大量第三方插件(直接或间接)使用了 Log4j,IntelliJ 将发布 Log4j API 的存根实现,将日志输出重定向到 java.util.logging,此功能源自 SLF4J 项目。但存根并没有完全实现所有方法,因此为了保持插件的全部功能,开发者可能需要调整代码以适应新环境。