用logparser查找iis文件中的模式

我期待从iis中提取当某个用户会话由aspnetsessionid在此处指定的超时时间超过10分钟会话超时我已经在此应用程序上设置。

我试图parsingiis日志,我不知道如何获取每个sessionid并计算它持续多less分钟。

在解决了第一部分之后,我将查找哪个会话以timeout.aspx页面的调用结束,但是在一个查询中指定这个会很好。

我正在尝试这个查询

SELECT TO_STRING(time, 'm') as mins, EXTRACT_TOKEN(EXTRACT_TOKEN(cs(Cookie), 1, 'ASP.NET_SessionId='), 0, ';+__ut') as ASPNETSESSIONID From C:\logs\ex11*.log GROUP BY ASPNETSESSIONID, mins 

这里是我想要捕捉的日志文件实例的一个例子

 Line Number Date Time Client-IP Server IP Server Port Request Verb Request URI, ASPNETSessionID 255 4/1/2011 19:40:55 222.222.22.22 111.11.111.11 443 GET /webpage.aspx 1234567890 256 4/1/2011 19:40:55 222.222.22.22 111.11.111.11 443 GET /jscript/SessionTimeout/SessionTimeout.js 1234567890 257 4/1/2011 19:40:58 222.222.22.22 111.11.111.11 443 POST /VerifySession.aspx 1234567890 260 4/1/2011 19:41:04 222.222.22.22 111.11.111.11 443 POST /Formle.aspx 1234567890 261 4/1/2011 19:41:04 222.222.22.22 111.11.111.11 443 GET /jscript/SessionTimeout/SessionTimeout.js 1234567890 263 4/1/2011 19:41:05 222.222.22.22 111.11.111.11 443 POST /VerifySession.aspx 1234567890 265 4/1/2011 19:41:10 222.222.22.22 111.11.111.11 443 POST /FormItemsTable.aspx 1234567890 266 4/1/2011 19:41:10 222.222.22.22 111.11.111.11 443 GET /FormRecord.aspx 1234567890 267 4/1/2011 19:41:10 222.222.22.22 111.11.111.11 443 GET /jscript/SessionTimeout/SessionTimeout.js 1234567890 268 4/1/2011 19:41:12 222.222.22.22 111.11.111.11 443 POST /VerifySession.aspx 1234567890 273 4/1/2011 19:41:23 222.222.22.22 111.11.111.11 443 POST /FormRd.aspx 1234567890 274 4/1/2011 19:41:23 222.222.22.22 111.11.111.11 443 GET /jscript/SessionTimeout/SessionTimeout.js 1234567890 275 4/1/2011 19:41:25 222.222.22.22 111.11.111.11 443 POST /VerifySession.aspx 1234567890 276 4/1/2011 19:41:25 222.222.22.22 111.11.111.11 443 GET /Timeout.aspx 1234567890 

https://stackoverflow.com/questions/5539229/whiting-a-group-by-query-for-logparser-to-look-for-a-pattern/5540840#5540840

将数据导入数据库,然后查询

 SELECT * from ((SELECT MAX(LocalDateTime) FROM dpo.importtable AS [initial] WHERE sessionid = raw_data.sessionid) - (SELECT MIN(LocalDateTime) FROM dpo.importtable AS [initial] WHERE sessionid = raw_data.sessionid) as diff) as g where diff < CAST('1900-01-01 00:10:00.000' AS datetime)