說說程序中的日志


      大家在寫程序時,如何處理與日志相關的事宜。程序中的日志應該怎么寫,以下是我的經驗與分享

    日志一般用於記錄程序運行信息,從而使開發者方便開發調試,了解生產環境執行情況。
在我看來程序中的日志主要分為兩種:異常日志和非異常日志。
那什么樣的日志屬於異常日志

異常日志

 

異常日志可以通過記錄日志的地方判斷,一般異常日志都涉及到異常捕獲,我在寫程序時兩個地方必定會加異常捕獲,而異常捕獲是記錄異常日志的前提。
    1 與數據持久層相關的邏輯
    這部分邏輯涉及到數據庫訪問,可能出現的問題有數據庫連接不存在,開發中很容易出現的數據庫連接串寫錯,數據庫用戶名密碼不合法。或者數據庫之間混淆,sql錯誤,數據連接超時,甚至有數據庫已崩潰的情況
    2 需要操作磁盤文件,特別是在服務器斷創建文件時,應該特別注意。寫文件涉及到程序運行賬戶必須有寫權限,而程序運行賬戶很可能不具備寫權限。我曾經遇到過一種情況:只有程序運行日志記錄成功后,程序才能啟動,當時又是wcf服務程序,排查原因,相當費勁。
上述這個問題,程序設計相當不合理,不應該把日志記錄和程序啟動耦合在一起,但是如果能夠捕獲異常記錄日志,並返回相應的提示,程序會健壯很多。
下面引出了另一個問題,日志記錄的形式和位置
下面是幾種不同的日志記錄形式。

按日期依次記錄,每個文件夾下可以按小時生成txt文件,這樣記錄的日志清晰可讀,排查尋找問題比較容易

 

另一種是使用log4等日志組件,直接寫成一個log.txt


由於程序抓錯傾向於在接近用戶的層次,在傳統的三層模式中即webform.cs文件中。

下面說說另一種日志,非異常日志

非異常日志

 

     非異常日志用的最普遍的地方就是windows服務,windows服務安裝程序比較復雜,大多通過控制台命令安裝,伴隨系統一起啟動。
主要執行多數據庫,多系統之間的數據同步,或者異步存儲,訂單狀態改變等后台系統任務。開發者往往根據日志來觀察程序的運行情況,這種情況下,運行日志越詳細越好。

如果你覺得我的文章對你有所幫助,請點 【推薦】

推薦閱讀

一步一步實現網站的多語言版本

我的程序優化-盡量減少數據庫連接操作


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM