今早,DD注意到JetBrains在官方博客發文宣布要將log4j從IntelliJ平臺移除了,該變化將在2022.1版本發布,
從博文看,本次移除log4j的漏洞,并非擔心log4j2的漏洞問題,因為基于IntelliJ平臺的IDE使用的并非log4j2,而是log4j 1.2的補丁版本(移除了所有網路相關的代碼),這里DD也順便看了一下,之前log4j核彈漏洞大爆發時候的訊息,根據官方給出的公告看,其旗下大量開發工具類產品并不受影響,

此次決定將log4j移除,核心還是因為IntelliJ平臺的IDE其實對于日志的需求非常低(僅用來資訊到檔案和控制臺),而log4j太過于復雜(會直接或間接引入太多第三方內容),為了避免未來出現其他潛在的問題,所以將移除對log4j的依賴,
影響范圍
從開發工具中移除log4j其實對大部分開發者影響不大,但如果你是插件開發者,那么會受一些影響,所以,官方給出了一些建議:
- 如果您在自己的插件代碼中使用log4j:切換到使用標準平臺日志記錄API
com.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,第一時間了解前沿行業訊息、分享深度技術干貨、獲取優質學習資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/423805.html
標籤:其他
上一篇:Spring學習
