關於windows IIS日誌時間與系統時間相差8小時的問題
很多做過網站的朋友在分析IIS日誌的時候會發現IIS日誌的時間與計算機的系統時間不符,比如在中國時區就會相差8小時。具體原因是什麼呢?網 上搜索的結果十有八九讓人做如下操作解決:在IIS日誌屬性“常 規”標籤下,找到“文件命名和創建使用當地時間”,在其前打勾。實際上,這種方法並不能解決時差問題。
真正的原因是因爲IIS默認 採用W3C 擴展日誌文件格式,而W3C 擴展日誌文件定義日誌採用GMT時間(即格林尼治標準時間),而中國在GMT +8時區,自然就相差八個小時了。要真正解決,有兩個辦法:
1:活動日誌格式更改爲 “Microsoft IIS 日誌文件格式”。此時時間一致。但是。。IIS日誌文件格式記錄的日誌文檔 內容不如W3C擴展日誌文件格式的文檔豐富,比如cs(User-Agent)段的信息就不會有,如果你很重視這些,那不要用此方法了。
2: 使用轉化工具轉化,如Convlog.exe 實用程序, 位於 Winnt\System 32 文件夾,由微軟提供。在命令提示符處, 鍵入: convlog - IE LogFileName - t ncsa +/- GMTOffset : 其中 LogFileName 是對轉換文件和 GMTOffset 名稱是的要更正小時數。 即本地時間與GMT時間差。 例如, 來轉換文件命名爲 " Logfile.log, " 和更正有關東部標準時間, 請使用以下命令: convlog - IE Logfile.log - t ncsa -0500:
附上命令詳解:
用法: convlog [options] LogFile
選項:
-i<i|n|e> = 輸入日誌文件類型
i - MS Internet 標準日誌文件格式
n - NCSA 公用日誌文件格式
e - W3C 擴展日誌文件格式
-t <ncsa[:GMTOffset] | none> 默認值是 ncsa
-o <output directory> 默認值 = 當前目錄
-x 將非 www 數據項保存到 .dmp 日誌文件
-d = 將 IP 地址轉換成 DNS
-l<0|1|2> = MS Internet 標準日期格式
0 - 月/日/年(默認值,如美國)
1 - 年/月/日(如中國)
2 - 日.月.年(如德國)
-c = 即使發現格式不正確,也繼續執行
如:
convlog -ii in*.log -d -t ncsa:+0800
convlog -in ncsa*.log -d
convlog -ii jra*.log -t none