關於寫日誌的思考

業務背景:最近寫項目的時候,寫完後測試的時候難免出現各種意想不到的錯誤或者異常,此時需要排查問題解決bug

環境背景:一旦上到預生產環境以後,xShell 沒有權限登陸機器,沒有辦法看到控制檯,log 日誌一般只是打印了 error 級別的,info 級別的日誌正常是沒有開啓的。

現狀:基於上面的背景,出現的結果就是排查問題的時候,不太好定位問題,插排問題效率比較低下。

思考或者注意:

  • 一般像接收到外部接口比較重要的數據,或者進入另一個重要任務的入口之前,可以先將數據作爲日誌打出來,根據能打印的log 級別去打印一下,然後在跑完方法或任務結束的時候再次打印一下,以便觀察整體方法是否有出錯的情況。
  • 在使用 try catch 的時候,catch 的內容不要隨便喫掉,要打印出來以便排查問題的時候所用。也要將堆棧打出來,一般將e 打出來,並配上相關的文字說明,知道是哪個地方出了問題,如果單單隻有文字說明但沒有堆棧信息的話很難知道具體是什麼問題,這個日誌打的基本沒有多大用。
  • 現在出現的一種寫法就是業務主線意外的情況,有可能直接通過拋出異常的情況來處理,
    throw new BizException("參數taxName不能爲空!"); 類似這種寫法。BizException 繼承的RuntimeException。這種寫法有如果遇到調用量很大的時候,性能就比較差了。其原因:異常處理的時候,會一層一層往上拋,所以量上來的時候性能會很受影響。在寫異常處理的時候,一定要把異常範圍小的放在前面,範圍大的放在後面。有多個catch的時候,Exception這個異常的根類一定要放在最後一個catch裏面,如果放在前面或者中間,任何異常都會和Exception匹配。
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章