如果有研究过IIS日志文件的朋友们,可能都知道,每个服务器,甚至每个域名的IIS日志格式可能都不同,这样刚开始接触的朋友就觉得很烦,特别是当我们要自己写IIS日志分析软件的时候更烦恼,因为如果一不小心设置错了,针对固定格式而写的读取文件就不能用了。特别是修改日志设置的时候,由于当日的文件中会存在两个不同的数据格式,读取非常麻烦,下面我把我解决这个烦恼问题的解决方案公开,希望对大家有帮助。
文件格式可能如下:




#Fields代表格式符,对应到下一个#Fields之前全部使用这种格式读取
也就是说 第2行使用第1行的格式,第4行使用第2行的格式,我们尝试读取第四行中的/book/product.aspx,注意1、3行定义了cs-uri-stem为这个数据的格式 ,比较1、3行,1行比3行多了cs-method 也就是Form中对应的GET/POST
由于顺序可能不同,出现的先后也可能不同,所以建立一个索引类,对应信息类的字段。代码如下




