2009年3月12日 星期四

U04 第一個元件(1)──Log記錄器

第一個需要製作的元件就是提供診斷系統參考使用的Log記錄器。在一般的作法裡Log大多只是一個定義許多static method的Class,在需要留下記錄字串的時候呼叫對應的方法。這樣的作法很方便使用,同時記錄的等級可以在設定檔裡修改。

但是系統開發到某個程度後需要減少Log記錄,這個時候由於只能更換整個系統的等級,就形成要一個一個檢查哪些記錄該刪或該留,當發生問題要多記錄或是穩定後減少記錄需要再調整特定部分記錄等級時又要再全部檢查一遍。如此花費很多時間卻又得不到精確的結果,並不是時程緊迫的專案所能接受的作法。設計Log記錄器元件,一方面提供一般程式現行的直接記錄作法,另一方面提供每一個元件都能夠定義各自的記錄等級。

首先要製作最底層的LogUtil物件,內部包裝真正執行記錄的外部物件,而且定義了LogUtilInterface準備供給Log元件依記錄等級呼叫。Interface裡有直接對應到底層實作log方法(沒任何加工,只是直接轉呼叫),這是提供非元件類別呼叫使用的。依記錄等級定義了trace()、debug()、info()、warn()、debug()與fatal()六種方法。

在記錄元件的功能規畫裡,記錄等級不是依賴log自有的設定檔,而是從Properties裡取得預設的log層級;另外元件各自的Properties裡可以定義該元件的Log Level,其設定會優先於LogUtil裡的預設值而影響記錄內容。log level相關的屬性及存取方法都定義在Root Component層級,讓所有的Component的記錄都具有隨時從設定檔切換不同等級的功能。

沒有留言:

張貼留言