page contents

IntelliJ 平台停止使用 Log4j

JetBrains官方博客发文宣布 IntelliJ 平台将完全停止使用 Log4j,并切换到 java.util.logging 作为标准日志框架。

attachments-2022-02-LpgvDRy8620c58d0ab0a3.png

JetBrains官方博客发文宣布 IntelliJ 平台将完全停止使用 Log4j,并切换到 java.util.logging 作为标准日志框架。

众所周知,之前在Log4j2中发现了一些漏洞,但是JetBrains官方表示基于IntelliJ平台的IDE使用了Log4j 1.2修补版本,不会受此漏洞的影响,同时删除了所有与网络相关的代码。Log4j 库的第 1 版和第 2 版是两个完全不同的代码库,具有不兼容的 API,版本迁移是一项艰巨的工作,不过,有一些自动化安全工具会把使用了旧版本的Log4j平台标记为存在安全问题。

IntelliJ平台对于日志框架的要求很低,可能需要的功能就是记录到文件和控制台,以及为代码库的不同部分配置日志级别的可能性。所有这些要求都包含在作为 JDK 一部分的标准日志 API(java.util.logging)中,为了避免错误的安全警报并减少潜在的攻击,IntelliJ 平台完全停止使用 Log4j 并切换到 java.util.logging 作为标准日志框架,更改将在版本 2022.1 中发布。

由于大量第三方插件(直接或间接)使用 Log4j,我们将发布 Log4j API 的存根实现,将日志输出重定向到 java.util.logging,此功能源自 SLF4J 项目。但是,存根并没有完全实现所有方法,因此为了保持插件的全部功能,开发者可能需要调整代码以适应新环境。

检查代码或依赖项是否使用 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 文件在测试中配置日志记录:切换到使用 .properties 文件的配置,如LogManager 文档中所述。使用 IntelliJ 测试框架运行测试时,可以使用idea.log.config.properties.file系统属性传递日志属性文件的路径。

以上更改会在 221.4165.x EAP 版本中更新。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。
attachments-2022-06-4yEnF44M62b2c1960050c.jpeg

  • 发表于 2022-02-16 09:52
  • 阅读 ( 334 )
  • 分类:行业资讯

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1494 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章