近日,JetBrains 官方博客发文宣布:IntelliJ 平台将彻底停止使用 Log4j,并建议切换到 java.util.logging
作为标准日志框架。
JetBrains 方面表示,尽管该平台对日志框架的要求相当低,但仍需要记录到文件和控制台,且须为代码库的不同部分配置日志级别的可能性。而作为 JDK(java.util.logging
)一部分的标准日志 API 则涵盖了所有这些要求。
因此,为避免错误安全警报并减少潜在攻击面,JetBrains 官方决定完全停止使用 Log4j,转而使用 java.util.logging
作为标准日志框架(该更改将在 2022.1 版中发布)。
JetBrains 在博文中提到,由于大量第三方插件(直接或间接)使用 Log4j,因此他们将提供 Log4j API 的存根实现,将日志输出重定向到 java.util.logging
(取自 SLF4J 项目)。当然,存根暂未完全实现所有方法,因此为了维护插件的全部功能,用户可能需要调整代码以适应新环境。
对此,JetBrains 官方也为用户附上了一些更新建议(检查代码或依赖项是否使用Log4j 以按照以下说明更新代码):
com.intellij.openapi.diagnostic.Logger
java.util.logging
实现的 SLF4J API ,因此平台完全支持 SLF4J 日志记录。Log4j-SLF4J
日志桥来实现,从依赖项进行日志记录则可继续工作。java.util.logging
配置处理程序和日志级别的日志 API。idea.log.config.properties.file
系统属性的路径。以上这些变更均在即将发布的 221.4165.x EAP 版本里呈现(建议使用这些版本测试插件与平台更改的兼容性)。
众所周知,去年底 Log4j2 中被曝出了几个重大漏洞,随后 JetBrains 官方就宣布称他们使用的是经过修补的 Log4j 1.2 版本,因此基于 IntelliJ 平台的 IDE 不受此漏洞的影响,并删除了所有与网络相关的代码。
据悉,Log4j 库的版本 1 和 版本 2 是两个完全不同的代码库,由于两者具有不兼容的 API,因此从一个版本迁移到另一个版本实属不易。尽管如此,一些自动化的安全工具仍然将 JetBrains 使用“旧”版本的 Log4j 标记为安全问题。
此次变更,也将彻底断绝用户对于 JetBrains 方面安全问题的担忧。对于此次变更,如果您有哪些观点的话也欢迎在评论区交流互动。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!