1. 程式人生 > >略論並行處理系統的日誌設計

略論並行處理系統的日誌設計

inf 詳細 技術 出錯 size 軟件 多進程 eve middle

作者:朱金燦

來源:http://blog.csdn.net/clever101

一般來說桌面軟件以單機單進程的方式執行。在調試程序時能夠方便地進行單步調試。而並行處理系統往往以多機多進程的方式執行,一旦出錯對於怎樣定位錯誤所在成了一件棘手的事情。這時日誌調試成為定位錯誤的有效手段。

以下談談怎樣設計日誌能夠方便地定位錯誤。

首先是日誌文件的命名,最初的命名是採用軟件名字.log。發現這樣做最新的日誌總是把老日誌覆蓋了,顯然這樣是不行的。要想新的日誌不覆蓋舊的日誌,就採用了日期時分_GUID.log的命名方式。日期時分能夠確定日誌是是啥時候生成的。GUID確保新日誌不覆蓋舊日誌。

其次是日誌信息的分級。如今我將日誌分為:信息和錯誤兩級。信息這一級是為了輸出相關的信息;錯誤級是為了記錄出錯的地方。曾經看到有些軟件的日誌信息分為多級:信息、警告、一般錯誤和嚴重錯誤。

我感覺並無太大必要。這裏要詳細說下日誌要記錄哪些內容呢?我想大致是:日誌的分級標簽、日誌產生時間、相應的源代碼文件和行號、詳細的輸出信息。比方日誌信息分為兩級,分級標簽能夠是infoerror。添加分級標簽是為了方便日誌分析工具來分析日誌。

三是日誌分析工具。為什麽須要日誌分析工具?由於隨著系統執行時間越來越好長,形成非常多日誌文件和日誌記錄,單靠人眼是找不到出錯的地方,僅僅有借助軟件進行自己主動化分析。

下圖是我設計的一個簡單的日誌分析工具:

技術分享

這個能夠查詢某一時間段產生的某一類的日誌(比方錯誤日誌或一般的信息輸出日誌)。

略論並行處理系統的日誌設計