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

2021-07-10 01:21:40 字數 710 閱讀 6135

一般來說桌面軟體以單機單程序的方式執行,在除錯程式時可以方便地進行單步除錯。而並行處理系統往往以多機多程序的方式執行,一旦出錯對於如何定位錯誤所在成了一件棘手的事情。這時日誌除錯成為定位錯誤的有效手段。下面談談如何設計日誌可以方便地定位錯誤。

首先是日誌檔案的命名,最初的命名是採用軟體名字.log。發現這樣做最新的日誌總是把老日誌覆蓋了,顯然這樣是不行的。要想新的日誌不覆蓋舊的日誌,就採用了日期時分_guid.log的命名方式。日期時分可以確定日誌是是啥時候生成的,guid確保新日誌不覆蓋舊日誌。

其次是日誌資訊的分級。現在我將日誌分為:資訊和錯誤兩級。資訊這一級是為了輸出相關的資訊;錯誤級是為了記錄出錯的地方。以前看到有些軟體的日誌資訊分為多級:資訊、警告、一般錯誤和嚴重錯誤。我感覺並無太大必要。這裡要具體說下日誌要記錄哪些內容呢?我想大致是:日誌的分級標籤、日誌產生時間、對應的原始碼檔案和行號、具體的輸出資訊。比如日誌資訊分為兩級,分級標籤可以是info和error。增加分級標籤是為了方便日誌分析工具來分析日誌。

三是日誌分析工具。為什麼需要日誌分析工具?因為隨著系統執行時間越來越好長,形成很多日誌檔案和日誌記錄,單靠人眼是找不到出錯的地方,只有借助軟體進行自動化分析。下圖是我設計的乙個簡單的日誌分析工具:

這個可以查詢某一時間段產生的某一類的日誌(比如錯誤日誌或一般的資訊輸出日誌)。

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

一般來說桌面軟體以單機單程序的方式執行。在除錯程式時能夠方便地進行單步除錯。而並行處理系統往往以多機多程序的方式執行,一旦出錯對於怎樣定位錯誤所在成了一件棘手的事情。這時日誌除錯成為定位錯誤的有效手段。以下談談怎樣設計日誌能夠方便地定位錯誤。首先是日誌檔案的命名,最初的命名是採用軟體名字.log。發...

多重處理系統中,處理死鎖的辦法

一 問題求解 在多重處理系統中,處理死鎖的辦法有兩種 一是防止其發生 二是發生後進行處理。下面的辦法中屬於防止其發生的是哪乙個?a 破壞互斥條件 b 破壞不可剝奪條件 c 破壞迴圈等待條件 d 殺死某個啟用死鎖的程序 二 問題求解 解析 所謂死鎖,是指多個程序迴圈等待它方占有的資源而無限期地僵持下去...

批處理系統和分時系統的區別

要弄清批處理系統和分時系統的區別,首先我們得了解何為批處理系統和分時系統?一 批處理系統 從字面上理解,就是一批一批的處理任務的一種系統,嚴格的定義,就是指使用者將一批作業提交給作業系統後就不再干預,由作業系統控制它們自動執行。這種採用批量處理作業技術的作業系統稱為批處理作業系統。簡單地理解就是我手...