查看原文
其他

JetBrains 宣布:IntelliJ 平台彻底停用 Log4j 组件,建议切换至 java.util.logging

点击关注 👉 顶级架构师 2022-07-01
推荐关注
顶级架构师后台回复 1024 有特别礼包


来源:segmentfault.com/a/1190000041400202

上一篇:SpringCloud 微服务架构,适合接私活(附源码)


大家好,我是顶级架构师。


近日,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 项目)。当然,存根暂未完全实现所有方法,因此为了维护插件的全部功能,用户可能需要调整代码以适应新环境。另外,搜索公众号Java架构师技术后台回复“Spring”,获取一份惊喜礼包。

对此,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 方面安全问题的担忧。对于此次变更,如果您有哪些观点的话也欢迎在评论区交流互动。

最后给读者整理了一份BAT大厂面试真题,需要的可扫码回复“面试题”即可获取。


公众号后台回复 架构 或者 架构整洁 有惊喜礼包!顶级架构师交流群

 「顶级架构师」建立了读者架构师交流群,大家可以添加小编微信进行加群。欢迎有想法、乐于分享的朋友们一起交流学习。

扫描添加好友邀你进架构师群,加我时注明姓名+公司+职位】


版权申明:内容来源网络,版权归原作者所有。如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。

猜你还想看

推荐一套开源通用后台管理系统(附源码)

看看人家那 IM 即时通讯系统,那叫一个优雅(附源码)

面试官:生成订单30分钟未支付,则自动取消,该怎么实现?

阿里技术专家:一文教你高效画出技术架构图

16个 Redis 常见使用场景,面试有内容聊啦

面试官问:MySQL的自增 ID 用完了,怎么办?

知名国产论坛,凉了!!!!

求你别自己瞎写工具类了,Spring自带的这些他不香麽?

亿级京东应用架构设计与治理

Spring Aop 常见注解和执行顺序

为什么用etcd而不用Zookeeper?

如何保证缓存与数据库双写时的数据一致性?

2022版Java微服务全套教程(线路图&视频)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存