一般來說桌面軟體以單機單程序的方式執行。在除錯程式時能夠方便地進行單步除錯。而並行處理系統往往以多機多程序的方式執行,一旦出錯對於怎樣定位錯誤所在成了一件棘手的事情。這時日誌除錯成為定位錯誤的有效手段。
以下談談怎樣設計日誌能夠方便地定位錯誤。
首先是日誌檔案的命名,最初的命名是採用軟體名字.log。發現這樣做最新的日誌總是把老日誌覆蓋了,顯然這樣是不行的。要想新的日誌不覆蓋舊的日誌,就採用了日期時分_guid.log的命名方式。日期時分能夠確定日誌是是啥時候生成的。guid確保新日誌不覆蓋舊日誌。
其次是日誌資訊的分級。如今我將日誌分為:資訊和錯誤兩級。資訊這一級是為了輸出相關的資訊;錯誤級是為了記錄出錯的地方。曾經看到有些軟體的日誌資訊分為多級:資訊、警告、一般錯誤和嚴重錯誤。
我感覺並無太大必要。這裡要詳細說下日誌要記錄哪些內容呢?我想大致是:日誌的分級標籤、日誌產生時間、相應的源**檔案和行號、詳細的輸出資訊。比方日誌資訊分為兩級,分級標籤能夠是info和error。新增分級標籤是為了方便日誌分析工具來分析日誌。
三是日誌分析工具。為什麼須要日誌分析工具?由於隨著系統執行時間越來越好長,形成非常多日誌檔案和日誌記錄,單靠人眼是找不到出錯的地方,僅僅有借助軟體進行自己主動化分析。
下圖是我設計的乙個簡單的日誌分析工具:
這個能夠查詢某一時間段產生的某一類的日誌(比方錯誤日誌或一般的資訊輸出日誌)。
略論並行處理系統的日誌設計
一般來說桌面軟體以單機單程序的方式執行,在除錯程式時可以方便地進行單步除錯。而並行處理系統往往以多機多程序的方式執行,一旦出錯對於如何定位錯誤所在成了一件棘手的事情。這時日誌除錯成為定位錯誤的有效手段。下面談談如何設計日誌可以方便地定位錯誤。首先是日誌檔案的命名,最初的命名是採用軟體名字.log。發...
多重處理系統中,處理死鎖的辦法
一 問題求解 在多重處理系統中,處理死鎖的辦法有兩種 一是防止其發生 二是發生後進行處理。下面的辦法中屬於防止其發生的是哪乙個?a 破壞互斥條件 b 破壞不可剝奪條件 c 破壞迴圈等待條件 d 殺死某個啟用死鎖的程序 二 問題求解 解析 所謂死鎖,是指多個程序迴圈等待它方占有的資源而無限期地僵持下去...
批處理系統和分時系統的區別
要弄清批處理系統和分時系統的區別,首先我們得了解何為批處理系統和分時系統?一 批處理系統 從字面上理解,就是一批一批的處理任務的一種系統,嚴格的定義,就是指使用者將一批作業提交給作業系統後就不再干預,由作業系統控制它們自動執行。這種採用批量處理作業技術的作業系統稱為批處理作業系統。簡單地理解就是我手...