最近在分析web日志,发现IIS7日志中时间与系统时间不一致,即本该上班时间才产生的访问日志,全部发生在凌晨至上班前。
日志记录时间和实际时间总是差了8个小时,也就是慢了8个小时

本以为是系统时间设置错误,检查后一切正常。后查询资料,原来是这个原因:

日志的格式有IIS、NCSA、W3C三种。

IIS是固定的基于 ASCII 文本的格式,无法自定义记录的字段,字段由逗号分隔,记录的时间为本地时间文件名前缀为u_in。

NCSA是美国国家超级计算技术应用中心 (NCSA) 公用日志文件格式,也是固定的基于 ASCII 文本的格式,无法自定义记录的字段,字段由空格分隔,记录的时间为本地时间,并标记了与UTC时间的偏差,文件名前缀为u_nc。

W3C是可自定义的基于 ASCII 文本的格式,可以指定记录的字段,如图所示,字段由空格分隔,记录的时间GMT时间(即格林尼治标准时间),文件名前缀为u_ex。

IIS7默认使用的格式为W3C,它所能提供的信息是最完整的,NCSA是最简洁的。因此如果采用NCSA格式,每一次访问都会被马上记录下来,而W3c格式则需要一定的处理时间,大约一两分钟左右,才可以在日志中看到最新的访问记录,IIS格式则介于两者之间。

解决方案

137119-20151127103126593-1607645762.png

137119-20151127103247171-91935703.png

解决1: IIS日志记录默认使用的是W3C扩展日志文件格式;该文档定义日志采用GMT时间(即格林尼治标准时间【0时区】)。如果你想按照本地时间来创建日志记录,并且使用W3C的日志格式,这种方式是不能实现的,只有自己手动看日志的时候+8个小时修正

解决2:把IIS的日志记录格式改为:Microsoft IIS 日志文件格式.然后按上面图中的操作执行确定.这个方法经过本人测试通过.认为是比较不错的一个办法,而且日志格式文件经过一些IIS日志分析工具分析,证明是可以正常分析的.但是IIS日志格式给出的字段不够多,功能上差一些

经过上面对比,还是使用解决方案1吧,辛苦就辛苦点

Last modification:August 31st, 2019 at 01:57 pm
如果觉得我的文章对你有用,请随意赞赏