Apache Log4j 爆核彈級(jí)漏洞,Spring Boot 默認(rèn)日志框架就能完美躲過(guò)!!
點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)
這兩天沸沸揚(yáng)揚(yáng)的 Log4j2 漏洞門(mén)事件炒得熱火朝天:
突發(fā)!Apache Log4j2 報(bào)核彈級(jí)漏洞。。趕緊修復(fù)??!
如果你使用的是 Log4j 1.x、Logback 或者其他日志框架,這次就可以幸免于難。
Log4j 1.x 就不用說(shuō)了,這是老古董了,也就是傳說(shuō)中的老牌日志框架 "Log4j",曾經(jīng)無(wú)處不在,現(xiàn)在很少用到了,除非在一些老系統(tǒng)中,新項(xiàng)目基本都是 Log4j 2.x 和 Logback 了。
Log4j 2.x 就是對(duì) Log4j 1.x 的升級(jí),得到了重大改進(jìn),并且吸引了 Logback 中的優(yōu)秀設(shè)計(jì)并加以?xún)?yōu)化,現(xiàn)在得比較多。
Logback 同樣也是 Log4j 的作者開(kāi)發(fā)的,擁有更多豐富的特性,是 Log4j 1.x 的替代。
Log4j 2.x 用得比較多,一是因?yàn)樗?Apache 頂級(jí)項(xiàng)目,二是因?yàn)樗1频漠惒饺罩居涗浶阅埽?/strong>

更多性能對(duì)比參考:
https://logging.apache.org/log4j/2.x/performance.html
可以看到,同樣都是異步模式,當(dāng)線程不斷增多時(shí),Log4j 2.x 的性能吊打 Log4j 1.x 和 Logback,Logback 和 Log4j 則不相上下。
單從性能來(lái)說(shuō),Log4j 2.x 無(wú)疑是日志框架中的王者,但 Logback 也不甘下風(fēng),它憑借作為 Spring Boot 中的默認(rèn)日志框架,Logback 也得到大量應(yīng)用。

如圖,如果我們沒(méi)有指定任何其他日志 Starter,默認(rèn)的就是 Logback。

它是從 Spring Boot 默認(rèn)依賴(lài)中帶出來(lái)的,更多可以看棧長(zhǎng)在公眾號(hào)Java技術(shù)棧分享過(guò)的《Spring Boot 自定義日志教程》。
很多粉絲說(shuō)用的 Logback,沒(méi)有躺槍?zhuān)赡芤彩且驗(yàn)槭褂昧?Spring Boot 默認(rèn)的日志配置吧,Spring Boot 機(jī)智了一回?
為什么 Logback 能成為 Spring Boot 的默認(rèn)日志框架?
個(gè)人認(rèn)為,主要原因是由于 Logback 是原生 SLF4J API(目前最主流的日志門(mén)面接口) 的實(shí)現(xiàn),可以很輕松的切換到其他日志框架,而 Log4j 并非原生實(shí)現(xiàn),它們結(jié)合 SLF4J API 都需要一個(gè)中間適配層。
這個(gè)可在參考一張國(guó)外的圖:

來(lái)源:https://krishankantsinghal.medium.com/logback-slf4j-log4j2-understanding-them-and-learn-how-to-use-d33deedd0c46
SLF4J 接口的直接原生實(shí)現(xiàn)是 Logback,但也可以通過(guò)中間適配層連接 Log4j 等其他非原生實(shí)現(xiàn)的日志框架,你看明白了嗎?
Log4j 2.x vs Logback 怎么選?
從上面的性能圖來(lái)看,Log4j 在并發(fā)寫(xiě)到達(dá) 4 個(gè)線程/秒及以上,性能就開(kāi)始碾壓 Logback 了。
所以,如果日志量很大,對(duì)性能又有要求,那么 Log4j 2.x 無(wú)疑是首選,否則用啥都無(wú)所謂,即對(duì)日志記錄沒(méi)有性能要求,日志記錄的快慢不會(huì)影響系統(tǒng)正常運(yùn)行,畢竟 Logback 是 SLF4J 原生支持,一般的系統(tǒng)完全足夠應(yīng)對(duì)了。
漏洞是不可避免的,Linux、Tomcat 也經(jīng)常爆嚴(yán)重漏洞,我們依然要用,反過(guò)來(lái),Log4j 2.x 也是如此,不要因?yàn)橐粋€(gè)框架出現(xiàn)漏洞就馬上換其他框架,也許其他框架也有漏洞,只是沒(méi)有爆出來(lái)而已。
不多說(shuō)了,最后,棧長(zhǎng)再通知一次,沒(méi)修復(fù)的,盡快了:
突發(fā)!Apache Log4j2 報(bào)核彈級(jí)漏洞。。趕緊修復(fù)?。?/a>
好了,今天的分享就到這里了,后面棧長(zhǎng)會(huì)分享更多好玩的 Java 技術(shù)和最新的技術(shù)資訊,關(guān)注公眾號(hào)Java技術(shù)棧第一時(shí)間推送,我也將主流 Java 面試題和參考答案都整理好了,在公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字 "面試" 進(jìn)行刷題。
版權(quán)聲明: 本文系公眾號(hào) "Java技術(shù)棧" 原創(chuàng),原創(chuàng)實(shí)屬不易,轉(zhuǎn)載、引用本文內(nèi)容請(qǐng)注明出處,抄襲者一律舉報(bào)+投訴,并保留追究其法律責(zé)任的權(quán)利。

關(guān)注Java技術(shù)棧看更多干貨

