2008年10月12日 星期日

R12 Log File的意義與應用

雖然說測試應用程式的好處在於可以便利地偵錯,但是上線的系統極可能不能作除錯動作甚至沒法快速更換除錯用程式的。在沒法看到程式內部狀況的時候,只能依靠程式的輸出來偵測內部的運作狀態;一般都會採用Log File作為這種記錄的機制。

病人與黑盒子元件我們只能根據先天已經存在的症狀來檢核,比較起來自行開發的系統在未來的除錯上有較多的優勢,因為我們可以自行決定哪些要記錄、哪些不要。雖然在考量要記錄什麼資訊時會基於執行數量的多寡與重要性等等因素加以取捨,但是必要的資訊還是應該記錄下來,以避免某些錯誤太難重現而錯先修正的先機。

Log最基礎的想法在於表達出程式曾經經過這裡,在必須的經過點留下記錄可以證明是否執行到應執行的程式;在重要的分歧判斷前留下Log則是為了記錄判斷條件在當時取用的資訊;執行時需要的資訊在初產出與取用前記錄下其內容。對於單一交易的記錄大致以這三個目的為主,執行時發現過多或不足再根據實際需要加以調整。(有時為了不同的需要,也會將應付不同目的的記錄分開放到不同的Log File裡)

如同醫生診斷病人時是以偵測當事人的病況加以治療而日後會提出某些疾病的統計分析,系統的Log除了對於單次交易的記錄之外,還應該考慮到同類型以及所有交易的統計所需。根據這樣的需要,我們必須定義交易起訖記錄以及內部重要步驟的起訖記錄,與其記錄的同時應該帶有的資訊(通常會考慮使用者、工作站、交易代號、開始時間、執行時間為最基本的記錄資訊);而所有記錄的結果應該另外撰寫讀取Log的程式加以分析並統計,才能快速且精確地計算出所需的報表。

先有使用者想處理的資訊存在,然後有因處理使用者資訊而存在的程式;在處理程式執行的同時會有靜態的記錄,再有處理靜態記錄的Log分析程式;對於Log分析程式產出的單一型式報表(例:使用者當日執行各交易次數統計),還會需要另一個報表統計程式產出各個處所或是整間公司的統計報表。資訊需要程式、程式產出資訊,資訊與程式就這麼循環地緊密相依著……。

沒有留言:

張貼留言