关于jetbrains:JetBrains-宣布IntelliJ-平台彻底停用-Log4j-组件建议切换至-javautillogging

5次阅读

共计 1323 个字符,预计需要花费 4 分钟才能阅读完成。

近日,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 以依照以下阐明更新代码):

  • 如果您在本人的插件代码中应用 Log4j:切换至应用规范平台日志 API com.intellij.openapi.diagnostic.Logger
  • 如果您在本人的代码中应用 Log4j,且该代码在插件和其余上下文中都应用:请切换至应用 SLF4J API。IntelliJ 平台附带了通过 java.util.logging 实现的 SLF4J API,因而平台齐全反对 SLF4J 日志记录。
  • 如果在代码的依赖项中应用 Log4j:申请依赖项维护者切换至 SLF4J。如果该操作无奈实现,则通过 Log4j-SLF4J 日志桥来实现,从依赖项进行日志记录则可持续工作。
  • 如果通过 Log4j API 定制应用 SLF4J 依赖项的日志记录,请切换至应用 java.util.logging 配置处理程序和日志级别的日志 API。
  • 如果应用 Log4j xml 文件来配置测试中的日志记录:应用切换到配置应用,如 LogManager 文档中形容的属性文件。当应用 IntelliJ 测试框架运行测试时,能够应用 idea.log.config.properties.file 零碎属性的门路。

以上这些变更均在行将公布的 221.4165.x EAP 版本里出现(倡议应用这些版本测试插件与平台更改的兼容性)。

家喻户晓,去年底 Log4j2 中被曝出了几个重大破绽,随后 JetBrains 官网就发表称他们应用的是通过修补的 Log4j 1.2 版本,因而基于 IntelliJ 平台的 IDE 不受此破绽的影响,并删除了所有与网络相干的代码。

据悉,Log4j 库的版本 1 和 版本 2 是两个齐全不同的代码库,因为两者具备不兼容的 API,因而从一个版本迁徙到另一个版本实属不易。尽管如此,一些自动化的平安工具依然将 JetBrains 应用“旧”版本的 Log4j 标记为平安问题。

此次变更,也将彻底断绝用户对于 JetBrains 方面平安问题的担心。对于此次变更,如果您有哪些观点的话也欢送在评论区交换互动。

参考链接:https://blog.jetbrains.com/pl…

正文完
 0