2008年5月21日 星期三

File 與 Log----ASP.NET的檔案與I/O Stream

File 與 Log----ASP.NET的檔案與I/O Stream
舉例來說,尚未上線的系統、或是有些功能繁雜的程式要撰寫。我們就可以利用檔案的功能來做紀錄。一邊測試一邊記錄這些程式在各階段的運作狀況,每個階段成功與否都可以直接寫入文字檔裡面,不需要跟資料庫搶資源、搶連線。畢竟小檔案I/O的速度,一般來說都快過資料庫。
以前我做過B2B的案子,用Rosettanet XML來傳遞資料(關於Rosettanet,請看中文網站的說明,http://www.rosettanettaiwan.org.tw/)。當時用的技術是 VB 6.0 + ASP + MS BizTalk Server + MS SQL Server 2000。
依照實際的狀況,我們會同時用「檔案」與「資料庫」來記錄這些流程。底下的五大步驟,前三項都會用文字檔做紀錄,因為這些小資料是自己Debug(除錯)用的,往往是系統出問題才會去察看,也不太有保留的價值,所以我們採用文字檔來記錄。
1. 程式定時啟動(例如:每五分鐘啟動一次),並開始記錄處理流程。2. 從資料庫搜尋資料。符合條件的紀錄就撈出來,組合成XML檔案。(執行時間與XML檔案都會存成文字檔,存在專有的目錄底下)3. 將XML檔案,轉換成 Rosettanet格式。(執行時間與Rosettanet XML檔案都會存檔,放在專有的目錄底下)4. 交給 Server準備發送。此時,就會用資料表來記錄時間與相關資料了。5. 傳送給對方的Server。對方收到後,我們也會把時間記錄在資料表裡面。註解:後面兩個流程要用資料表來做紀錄,是為了給客戶與主管查驗,日後也能統計與分析我們這套B2B系統的發送成功率等等。
除了大型的系統、複雜的程序需要做Log紀錄檔之外,網站常用的「訪客計數器」,也可以用檔案的方式來控管。可見存取檔案的用法,真的很多樣化。

以下是即將發表的新書內容:


Q:每一天都用一個檔案,用來記錄當天每支程式內部的執行狀況。
以下是相關的規範:

1. 檔案統一放在 C:\MIS2000Lab_ASP.NET_Log目錄底下。
2. 每一天都用一個單獨的子目錄,子目錄名稱就是當天日期。
3. 檔名必須是以當天日期為名,副檔名是.log,例如:20081231.log。
4. 檔案內每一段訊息,都要記錄完整的日期與時間(年/月/日/時/分/秒)。
每段訊息各自獨立一行,格式如下:
[2008/04/01 14:00:33] Message: 錯誤訊息XXXYYY
5. 檔案內的文字,採用 Big5正體中文來編碼。


記錄檔案的後置程式碼如下,其實不難,大部分都學過了。程式碼請看這裡----http://www.dotblogs.com.tw/mis2000lab/archive/2008/05/19/4034.aspx

沒有留言: