最近在分析web日志,发现IIS7日志中时间与系统时间不一致,即本该上班时间才产生的产并发访问日志,全部发生在凌晨至上班前。
本以为是系统时间设置错误,检查后一切正常。后查询资料,原来是这个原因:
日志的格式有IIS、NCSA、W3C三种。
IIS是固定的基于 ASCII 文本的格式,无法自定义记录的字段,字段由逗号分隔,记录的时间为本地时间文件名前缀为u_in。
NCSA是美国国家超级计算技术应用中心 (NCSA) 公用日志文件格式,也是固定的基于 ASCII 文本的格式,无法自定义记录的字段,字段由空格分隔,记录的时间为本地时间,并标记了与UTC时间的偏差,文件名前缀为u_nc。
W3C是可自定义的基于 ASCII 文本的格式,可以指定记录的字段,如图所示,字段由空格分隔,记录的时间采用UTC 格式,文件名前缀为u_ex。
IIS7默认使用的格式为W3C,它所能提供的信息是最完整的,NCSA是最简洁的。因此如果采用NCSA格式,每一次访问都会被马上记录下来,而W3c格式则需要一定的处理时间,大约一两分钟左右,才可以在日志中看到最新的访问记录,IIS格式则介于两者之间。
解决方案
程序员的基础教程:菜鸟程序员