日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

log4j无厘头异常

發布時間:2023/12/10 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log4j无厘头异常 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  今天系統升級,是web程序,備份程序之后,替換class下面的com的全部類文件后shutdown???tomcat,然后啟動程序,startup之后出現

java.lang.NullPointerException? at?org.apache.log4j.spi.LocationInfo.<init>(LocationInfo.java:104)? at?org.apache.log4j.spi.LoggingEvent.getLocationInformation(LoggingEvent.java:191)? at?org.apache.log4j.helpers.PatternParser$LocationPatternConverter.convert(PatternParser.java:483) at?org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:64)? at?org.apache.log4j.PatternLayout.format(PatternLayout.java:503)? at?org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301)? at?org.apache.log4j.WriterAppender.append(WriterAppender.java:159)? Exception?in?thread?"Thread-1"?at?org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)? at?org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65) at?org.apache.log4j.Category.callAppenders(Category.java:203)? at?org.apache.log4j.Category.forcedLog(Category.java:388)? at?org.apache.log4j.Category.info(Category.java:663)? at?cn.sh.flyhyp.kvdb.service.NodeService.onSystemExist(NodeService.java:55)? at?cn.sh.flyhyp.kvdb.service.NodeService$1.run(NodeService.java:40)

一開始以為是log4j的問題,快速找資料,進行回滾。用原來的備份的整個工程恢復,刪除正在運行的程序

啟動,發現還是一樣的錯,就奇怪了。

?

  這個時候我就停掉了程序,因為之前的日志太多了,有800多M(你肯定會覺得有問題,是的,我也這樣認為。日志不應該有這么多。即使這么多,也應該使用log4j的分多個文件的配置,不然的話,文件會巨大到你無法打開。這么多的日志是因為:系統與第三方合作,需要積累原始報文,進行問題定位,交流

?

  沒有辦法打開,這個時候,我就想把原來的日志備份,這個時候停掉程序之后,發現日志還在刷。

  我記得log4j是使用緩存的,那么這些日志是剛才啟動的系統的日志輸出并不代表現在啟動的程序有問題所以將原有日志備份,清空日志=


那么就奇怪了,那么之前的升級怎么會有問題呢

?

  這個就奇怪了了,什么回事啊。這個包從測試環境拿過來的,都驗證過的了啊,這個時候就就查看系統信息,grep之后發現,尼瑪

  怎么又兩個進程在跑。原來由于日志文件并發太大,日志刷太猛了,shutdown命令不能關閉tomcat,需要等log4j輸出完成之后才能關閉。之前一直使用kill來關閉進程,今天使用shutdown就出問題了,尼瑪就關閉不了了。

?

兩個相同的程序同時大量并發寫文件,受不了啊。所以就報錯了,又嚇死哥一場。

?

  • 總結與反思:

  1、雙機互備

  雖然當前系統的業務量和負載在一個很小的值,但是對于系統的穩定性來說,還是有一定的要求。特別是在今天這種情況。如果存在雙機互備的情況,那么就可以升級的時候,做到幾乎業務的零影響。公司的其他系統都是這樣做的了,所以會在之后進行雙機互備。

?

  2、是否可以考慮使用probe等工具進行tomcat的管理。

  由于系統是使用自定義的框架系統,并沒有如spring那樣的提供動態更改日志級別的功能。但是probe提供了對tomcat中的工程動態刷新日志配置信息的功能。是否值得接入??

  但是probe在網上看資料分析,probe已經很久沒有更新,并且存在一定的性能消耗。所以在對性能的評測出來之前,不建議使用。

  可行方案為添加動態刷新日志級別的接口,提供日志配置的動態修改。

轉載于:https://www.cnblogs.com/evermaze/p/log4jerror.html

總結

以上是生活随笔為你收集整理的log4j无厘头异常的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。