log,exception最佳實踐

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

          1.1 log.error表示系統(tǒng)級錯誤

          1.2 log.warn表示應(yīng)用級錯誤

          1.3 服務(wù)初始化或結(jié)束用log.info

          1.4 log.debug替代outdebug要判斷isDebugEnable

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

          1.6 log4e生成log相關(guān)代碼

          1.7 Log信息要保證可讀性,需記錄現(xiàn)場信息,如當(dāng)前處理id

          2 exception

          2.1 try catch內(nèi)的代碼不要太長

          2.2 因為性能原因,try catch少放循環(huán)內(nèi)

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

          2.4 不同模塊定義不同的exception

          2.5 建議創(chuàng)建應(yīng)用的基類exception,特別是有定義error code需要的應(yīng)用

          2.6 只要catch就要log error message

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

          2.8 持久層throw dataAccessException,業(yè)務(wù)層throw checked exception,展現(xiàn)層只顯示exception信息

          2.9 規(guī)范的exception流程定義如下:

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

          posted on 2006-01-18 15:39 pesome 閱讀(3644) 評論(10)  編輯  收藏 所屬分類: 系統(tǒng)架構(gòu)

          評論

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

          好  回復(fù)  更多評論   

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

          "debug要判斷isDebugEnable"

          會搞得代碼很冗長.  回復(fù)  更多評論   

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

          只要catch就要log error message

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

          "debug要判斷isDebugEnable"

          這個同意,最終應(yīng)用的效率會有不小的提高  回復(fù)  更多評論   

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

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

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

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

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

          確實不錯!  回復(fù)  更多評論   

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

          log.debug不光是給開發(fā)時調(diào)試用,更多的是生產(chǎn)出錯診斷時用。這也是記錄盡可能多現(xiàn)場信息的原因。  回復(fù)  更多評論   

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

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

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

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

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

          使用 log4E 還是不錯滴......  回復(fù)  更多評論   

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

          導(dǎo)航

          統(tǒng)計

          公告

          主要記錄作者在學(xué)習(xí)java中的每一步足跡。除非特別說明,所有文章均為本blog作者原創(chuàng),如需轉(zhuǎn)載請注明出處和原作者,如用于商業(yè)目的,需跟作者本人聯(lián)系。
          歡迎大家訪問:

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          java技術(shù)

          人間百態(tài)

          朋友們的blog

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 社旗县| 通许县| 舒城县| 石景山区| 包头市| 樟树市| 安徽省| 绥宁县| 闽清县| 云安县| 勃利县| 蓝田县| 开鲁县| 汝州市| 远安县| 新营市| 五常市| 义马市| 普兰县| 陕西省| 丹棱县| 洪雅县| 双峰县| 茂名市| 苗栗市| 涪陵区| 日土县| 上思县| 崇仁县| 沐川县| 西丰县| 松原市| 伊宁市| 渝北区| 格尔木市| 弋阳县| 来凤县| 林芝县| 塘沽区| 保定市| 揭阳市|