淺談log4j 不打印異常堆棧
本文研究的主要是log4j 不打印異常堆棧的相關(guān)內(nèi)容,具體如下。
最近在線上系統(tǒng)的錯(cuò)誤日志中發(fā)現(xiàn)了一個(gè)現(xiàn)象:
代碼里用log4j打印系統(tǒng)運(yùn)行時(shí)異常堆棧信息,在錯(cuò)誤日志中無(wú)法看到堆棧信息,只有異常信息。這對(duì)于程序員來(lái)說(shuō)是一個(gè)打擊,沒(méi)有堆棧信息何從查bug啊。
[01-15 11:29:26] [ERROR] [org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer:524] Unexpected throwable while invoking!
后來(lái)發(fā)現(xiàn)這個(gè)是jdk的一個(gè)優(yōu)化。JVM 為了性能會(huì)做優(yōu)化,如果頻繁的拋出某個(gè)異常,會(huì)重新編譯,不再打印異常堆棧。
解決這個(gè)問(wèn)題也比較簡(jiǎn)單,如果不想每次都去查前面的 log 去看堆棧,只要在啟動(dòng)參數(shù)加上 -XX:-OmitStackTraceInFastThrow,就可以禁用該優(yōu)化,強(qiáng)制打印異常堆棧。這樣可能會(huì)導(dǎo)致,log 文件過(guò)大,不過(guò)產(chǎn)線上今天之前的 log 文件都會(huì)被壓縮,所以感覺(jué)問(wèn)題也不大。
[01-15 16:40:09] [ERROR] [org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer:524] Unexpected throwable while invoking!
java.lang.NullPointerException
at com.iqiyi.ttbrain.recommend.selector.services.FilterService.filter2(FilterService.java:42)
at com.iqiyi.ttbrain.recommend.thrift.IFilterService$Processor$filter2.getResult(IFilterService.java:181)
at com.iqiyi.ttbrain.recommend.thrift.IFilterService$Processor$filter2.getResult(IFilterService.java:166)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:518)
at org.apache.thrift.server.Invocation.run(Invocation.java:18)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
總結(jié)
以上就是本文關(guān)于淺談log4j 不打印異常堆棧的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Maven本地倉(cāng)庫(kù)的配置以及修改默認(rèn).m2倉(cāng)庫(kù)位置
今天小編就為大家分享一篇關(guān)于Maven本地倉(cāng)庫(kù)的配置以及修改默認(rèn).m2倉(cāng)庫(kù)位置的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10Spring根據(jù)XML配置文件 p名稱空間注入屬性的實(shí)例
下面小編就為大家分享一篇Spring根據(jù)XML配置文件 p名稱空間注入屬性的實(shí)例,具有很好的參考價(jià)值。希望對(duì)大家有所幫助2017-11-11聊聊SpringMVC項(xiàng)目依賴和靜態(tài)資源導(dǎo)出問(wèn)題
這篇文章主要介紹了SpringMVC項(xiàng)目依賴和靜態(tài)資源導(dǎo)出問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12swagger2隱藏在API文檔顯示某些參數(shù)的操作
這篇文章主要介紹了swagger2隱藏在API文檔顯示某些參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06