log,exception最佳實踐

          項目組對log和exception的討論結果。希望更多的人參與討論。
          1
          log

          1.1 log.error表示系統級錯誤

          1.2 log.warn表示應用級錯誤

          1.3 服務初始化或結束用log.info

          1.4 log.debug替代outdebug要判斷isDebugEnable

          1.5 log.warn("",e)替代e.printstack

          1.6 log4e生成log相關代碼

          1.7 Log信息要保證可讀性,需記錄現場信息,如當前處理id

          2 exception

          2.1 try catch內的代碼不要太長

          2.2 因為性能原因,try catch少放循環內

          2.3 盡量避免catch(Exception)這樣的寫法

          2.4 不同模塊定義不同的exception

          2.5 建議創建應用的基類exception,特別是有定義error code需要的應用

          2.6 只要catch就要log error message

          2.7 catch并封裝成另一種exception,如果不nest原來的exception就要log stackTrace

          2.8 持久層throw dataAccessException,業務層throw checked exception,展現層只顯示exception信息

          2.9 規范的exception流程定義如下:

          業務層不需處理的runtime exception,由展現層定義的exception controller捕獲,交給相應的error頁面顯示并記錄stack信息。業務層捕獲下層的exception,并封裝成業務層的checked exception,如果nest所捕獲的exception,則僅log error message,如果不nest就需要用log.warn(“”,e)記錄stack信息。展現層捕獲業務層的exception,應由處理業務層exceptionerror頁面來處理。

          posted on 2006-01-18 15:39 pesome 閱讀(3640) 評論(10)  編輯  收藏 所屬分類: 系統架構

          評論

          # re: log,exception最佳實踐 2006-01-18 16:54 adjyoucmp

          好  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-18 16:56 江南白衣

          "debug要判斷isDebugEnable"

          會搞得代碼很冗長.  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-18 17:03 steady

          只要catch就要log error message

          這個需要看情況了,并不一定是必須的

          "debug要判斷isDebugEnable"

          這個同意,最終應用的效率會有不小的提高  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-18 17:17 pesome

          isDebugEnable效率提高在里面的拼string。可以用log4e生成這個代碼的。  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-18 18:04 江南白衣

          我寧愿在IDEA里跑Debug,要看什么自己查看變量,都不愿意搞一堆
          if(logger.isDebugEnable()){
          logger.debug()
          }
          把代碼弄得臟西西的.  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-18 18:54 Joshua bloch

          確實不錯!  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-18 19:18 pesome

          log.debug不光是給開發時調試用,更多的是生產出錯診斷時用。這也是記錄盡可能多現場信息的原因。  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-18 23:09 江南白衣

          如果有這個需要時的確有用.  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-18 23:36 benbenming

          log4j的配置文件放的位置有要求覺得不爽,所以自己寫log;exception說的不錯,一般catch中封裝自己寫的BaseException,感覺不錯!  回復  更多評論   

          # re: log,exception最佳實踐 2006-01-20 17:28 兼聽則明

          使用 log4E 還是不錯滴......  回復  更多評論   

          <2006年1月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          公告

          主要記錄作者在學習java中的每一步足跡。除非特別說明,所有文章均為本blog作者原創,如需轉載請注明出處和原作者,如用于商業目的,需跟作者本人聯系。
          歡迎大家訪問:

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          java技術

          人間百態

          朋友們的blog

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 衡南县| 林口县| 自贡市| 临邑县| 合川市| 深水埗区| 宣化县| 麦盖提县| 惠来县| 柏乡县| 河南省| 莎车县| 沁阳市| 富民县| 河北省| 杂多县| 松阳县| 永胜县| 循化| 酉阳| 万州区| 普安县| 都匀市| 汕尾市| 云安县| 曲阳县| 永宁县| 古蔺县| 卢湾区| 五原县| 元阳县| 洪泽县| 定远县| 台东市| 邮箱| 舒城县| 土默特右旗| 芷江| 运城市| 馆陶县| 文成县|