乐趣区

关于java:JetBrains官博将从IntelliJ平台移除Log4j的依赖

今早,DD 留神到 JetBrains 在官网博客发文发表要将 log4j 从 IntelliJ 平台移除了,该变动将在 2022.1 版本公布。

从博文看,本次移除 log4j 的破绽,并非放心 log4j2 的破绽问题,因为基于 IntelliJ 平台的 IDE 应用的并非 log4j2,而是 log4j 1.2 的补丁版本(移除了所有网络相干的代码)。这里 DD 也顺便看了一下,之前 log4j 核弹破绽大暴发时候的音讯,依据官网给出的布告看,其旗下大量开发工具类产品并不受影响。

此次决定将 log4j 移除,外围还是因为 IntelliJ 平台的 IDE 其实对于日志的需要非常低(仅用来信息到文件和控制台),而 log4j 太过于简单(会间接或间接引入太多第三方内容)。为了防止将来呈现其余潜在的问题,所以将移除对 log4j 的依赖。

影响范畴

从开发工具中移除 log4j 其实对大部分开发者影响不大,但如果你是插件开发者,那么会受一些影响。所以,官网给出了一些倡议:

  • 如果您在本人的插件代码中应用 log4j:切换到应用规范平台日志记录 APIcom.intellij.openapi.Diagnotic.Logger
  • 如果您在本人的代码中应用 log4j,该代码在插件和其余上下文中都能够应用:请切换到应用 SLF4J API。IntelliJ 平台通过 java.util.log 附带了 SLF4J API 的实现,因而该平台齐全反对 SLF4J 日志记录。
  • 如果在代码的依赖项中应用 log4j:申请依赖项维护者切换到 SLF4J。如果这是不可能的,多亏了 log4j 到 SLF4J 桥,从依赖项进行的日志记录很可能会持续工作。
  • 如果您应用 log4jAPI 定制应用 SLF4J 的依赖项的日志记录:切换到应用 java.util.logingAPI 来配置处理程序和日志级别。
  • 如果您在测试中应用 log4jXML 文件来配置日志记录:请切换到应用 .properties 文件的配置,如 LogManager 文档中所述。应用 IntelliJ 测试框架运行测试时,能够应用 idea.log.config.properties 文件系统属性传递日志属性文件的门路。

DD 感觉对于 IntelliJ 这样的产品来说,移除 log4j 还是十分值得咱们学习的,正如官网所说的那样,log4j 过于简单,会引入很多其余货色,而这些货色带来的个性对本人有没啥用,的确会造成一些隐患。不提平安问题吧,就依赖治理上,DD 以前帮其余开发查问题的时候,常常发现的依赖抵触大多就是引入了一些简单的高级依赖造成的。

最初,考考大家,JetBrains 这一决定,合乎面向对象设计六大准则中的哪一个准则?留言说出你的答案!

咱们创立了一个 高质量的技术交换群,与优良的人在一起,本人也会优良起来,连忙点击加群,享受一起成长的高兴。

欢送关注我的公众号:程序猿 DD。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源

退出移动版