石建 | Fat Mind

          日志級別與日志信息

          題記:日志記錄,對一個應用非常重要,不僅僅只為定位線上bug(exception日志),還有業務日志,比如:統計用戶的搜索詞、響應時間等。

          一、
          日志級別

          眾所周知,在log4j中定義5個最常用日志級別:debug、info、warn、error、fatal,級別依次嚴重。
          可大家思考過,什么時候應該記info,exception時是應該記warn,還是error呢 ?下面是今天小團隊討論后,自己的一些理解。

          debug:程序內部的信息,對于外部使用的人是沒有意義。比如:函數的執行時間。(fine-grained information events that are most useful to debug an application)debug記錄的是細粒度的事件信息,對于調式程序是非常有用的。

          info:informational messages that highlight the progress of the application at coarse-grained level.(強調應用的執行的進度,關鍵分支的記錄)。比如:關鍵分支記錄(輸入參數等),
          對運維工程師來說這些信息也是有價值的,info指明程序的運行是否符合正確的業務邏輯。

          對于warn與error級別,是我自己最困惑的 ?

          先講個形象的例子 :

                   有一天,李三說請你幫個忙,幫他收拾一下自行車,但是他的自行車是放在他自己家里的,房屋上鎖。
                   1、李三:給你鑰匙,此時你沒有工具,但是你可以用你自家的工具修理自行車。結果:完成任務;過程:存在問題,內部可以處理此問題。
                   2、李三:沒給你鑰匙,但給你工具或者沒給你工具,此時你不能接觸到自行車。結果:無法完成任務;過程:存在問題,無法處理此問題。

          結論:1情況,記warn;2情況,記error。觀點:關注的是最小單元的業務是否能夠完成,而對于應用來說,最小單元的業務就是“method方法”,每個方法去完成的任務都是一個獨立的、最小單元的業務。

          提醒:必須結合具體場景來判斷,比如:dao從數據庫獲取數據失敗,對自身來說是error,沒有完成獲取數據的任務;但對業務層來說,或者有其它方法修復此異常,如通過http重新獲取等,此時業務層是完成自身任務的,所以為warn。

          warn:potentially harmful situations.(潛在的有害狀態)。比如:廣告投放,淘寶搜索右側p4p廣告會根據地域展現,但某次用戶搜素,ip地址獲取失敗,可能會用默認值替代或者為空,但是并不影響右側廣告的展現。所以展現廣告的任務是完成的,對于業務來說是執行成功的,盡管過程中出現問題。

          error:error events that might still allow the application to continue running.(錯誤事件發生,程序或許依然能夠運行)。比如:廣告前段展現,通過http從引擎獲取數據時,因為引擎的機器連接數達到上限或者臨時網絡原因,timeout,但程序能正常運行,next請求引擎則成功。從函數角度看,此函數任務沒有完成,記error。

          fatal:very severe error events that will presumably lead the application to abort.(錯誤可能會導致應用崩潰)。


          對于日志級別,或許大家也會有自己的理解(如有不同意見,請大家指點)


          二、記錄信息

          這個話題簡單一點,三點:
          1、做什么操作
          2、輸入內容
          3、堆棧信息(有堆棧信息的情況下)


          posted on 2010-10-09 23:26 石建 | Fat Mind 閱讀(1812) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2010年10月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          What 、How、Why,從細節中尋找不斷的成長點
          主站蜘蛛池模板: 南郑县| 卫辉市| 呈贡县| 龙井市| 卓尼县| 夏津县| 霍林郭勒市| 阿拉尔市| 龙里县| 滨海县| 横山县| 深州市| 漳平市| 清涧县| 手机| 仙游县| 涟源市| 民权县| 崇仁县| 五大连池市| 黄山市| 涟水县| 望都县| 交口县| 邮箱| 宁武县| 九寨沟县| 鄄城县| 枣强县| 江津市| 长春市| 梁河县| 逊克县| 通州市| 贞丰县| 称多县| 锡林郭勒盟| 防城港市| 内丘县| 临安市| 安阳县|