這篇記錄一下在 IIS Log 總是顯示錯誤的問題
會顯示錯誤主要是 W3C log 的格式預設時區是格林威治,所以時間總是不對
這種錯誤通常是小事,但對於需要進行 AWStats 等等分析軟體來進行分析的話,時間的正確性就顯得重要許多。
這篇就來一一解決這些問題
其 W3C 格式的問題多數存在於 IIS 上,在預設格式都是採用 W3C,但其實可以改用「Microsoft IIS 記錄檔格式」
在 IIS 站台右鍵內容 → 將記錄格式改為「Microsoft IIS 記錄檔格式」,並且將「使用本地時間為檔案命名」打勾
「Microsoft IIS 記錄檔格式」這種格式 Log 紀錄的時間是由 Server 本身時區而定。
「使用本地時間為檔案命名」關係於檔案命名的時區時間。
IIS 6 設定「Microsoft IIS 記錄檔格式」
IIS 7 設定「Microsoft IIS 記錄檔格式」
好了,這時候小弟又有一點吹毛求疵,因為 IIS 格式的 Log 內容紀錄的比 W3C 少很多,例如 cs(User-Agent) .. 如果這些是必要的訊息,微軟還提供了 convlog 來轉換各種 log 時區 (這算是微軟承認問題所在而出的一個補救工具吧!?)
用 script 批次處理一下這些 W3C log
convlog 存在於 C:\Windows\System32\convlog.exe,基本上環境變數已經有了,你在任何地方都可以使用他!
將 E:\*.log 的所有 W3C 格式 log 輸出為台灣時區+0800 convlog -ie -t ncsa:+0800 E:\*.log
輸出會將檔案產出為 file.log.ncsa
如果覺得不好辨識再用 rename 處理一下檔名就大功告成!!
參考資料: