大家在寫程式時,如何處理與日志相關的事宜。程式中的日志應該怎麼寫,以下是我的經驗與分享
日志一般用于記錄程式運作資訊,進而使開發者友善開發調試,了解生産環境執行情況。
在我看來程式中的日志主要分為兩種:異常日志和非異常日志。
那什麼樣的日志屬于異常日志
異常日志
異常日志可以通過記錄日志的地方判斷,一般異常日志都涉及到異常捕獲,我在寫程式時兩個地方必定會加異常捕獲,而異常捕獲是記錄異常日志的前提。
1 與資料持久層相關的邏輯
這部分邏輯涉及到資料庫通路,可能出現的問題有資料庫連接配接不存在,開發中很容易出現的資料庫連接配接串寫錯,資料庫使用者名密碼不合法。或者資料庫之間混淆,sql錯誤,資料連接配接逾時,甚至有資料庫已崩潰的情況
2 需要操作磁盤檔案,特别是在伺服器斷建立檔案時,應該特别注意。寫檔案涉及到程式運作賬戶必須有寫權限,而程式運作賬戶很可能不具備寫權限。我曾經遇到過一種情況:隻有程式運作日志記錄成功後,程式才能啟動,當時又是wcf服務程式,排查原因,相當費勁。
上述這個問題,程式設計相當不合理,不應該把日志記錄和程式啟動耦合在一起,但是如果能夠捕獲異常記錄日志,并傳回相應的提示,程式會健壯很多。
下面引出了另一個問題,日志記錄的形式和位置
下面是幾種不同的日志記錄形式。
按日期依次記錄,每個檔案夾下可以按小時生成txt檔案,這樣記錄的日志清晰可讀,排查尋找問題比較容易

另一種是使用log4等日志元件,直接寫成一個log.txt
由于程式抓錯傾向于在接近使用者的層次,在傳統的三層模式中即webform.cs檔案中。
下面說說另一種日志,非異常日志
非異常日志
非異常日志用的最普遍的地方就是windows服務,windows服務安裝程式比較複雜,大多通過控制台指令安裝,伴随系統一起啟動。
主要執行多資料庫,多系統之間的資料同步,或者異步存儲,訂單狀态改變等背景系統任務。開發者往往根據日志來觀察程式的運作情況,這種情況下,運作日志越詳細越好。
如果你覺得我的文章對你有所幫助,請點 【推薦】
推薦閱讀
<a href="http://www.cnblogs.com/needrunning/archive/2012/10/27/2742957.html" target="_blank">一步一步實作網站的多語言版本</a>
<a href="http://www.cnblogs.com/needrunning/archive/2012/05/02/2479810.html">我的程式優化-盡量減少資料庫連接配接操作</a>