解決 IIS、W3C Log 時區顯示錯誤

2014-12-20 IIS

這篇記錄一下在 IIS Log 總是顯示錯誤的問題

會顯示錯誤主要是 W3C log 的格式預設時區是格林威治,所以時間總是不對

這種錯誤通常是小事,但對於需要進行 AWStats 等等分析軟體來進行分析的話,時間的正確性就顯得重要許多。

 

這篇就來一一解決這些問題

 

 

其 W3C 格式的問題多數存在於 IIS 上,在預設格式都是採用 W3C,但其實可以改用「Microsoft IIS 記錄檔格式」

 

在 IIS 站台右鍵內容 → 將記錄格式改為「Microsoft IIS 記錄檔格式」,並且將「使用本地時間為檔案命名」打勾

「Microsoft IIS 記錄檔格式」這種格式 Log 紀錄的時間是由 Server 本身時區而定。

「使用本地時間為檔案命名」關係於檔案命名的時區時間。

 

 

IIS 6 設定「Microsoft IIS 記錄檔格式」

2014-12-20_025944

2014-12-20_030603

 

IIS 7 設定「Microsoft IIS 記錄檔格式」

2014-12-20_030531

 

 

好了,這時候小弟又有一點吹毛求疵,因為 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 處理一下檔名就大功告成!!

 

 

 

 

 

參考資料:

W3C Extended Log File Format (IIS 6.0)

IIS Log File Entries Have the Incorrect Date and Time Stamp

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱