C# MS日志分析器2.2查询错误
我试图确定用户是否使用MS Log Parser 2.2从FTP下载了文件 虽然我使用了几个示例查询,但我还无法启动解析器SQL查询 水下解析器查询不起作用: strSQL=选择日期,将*计算为下载,c-ip strSQL=strSQL&来自C:\temp\Log\*.Log strSQL=strSQL&其中cs method='RETR' strSQL=strSQL&按日期分组,c-ip 错误: 问题: 如何创建查询:C# MS日志分析器2.2查询错误,c#,vb.net,iis,logparser,iis-logs,C#,Vb.net,Iis,Logparser,Iis Logs,我试图确定用户是否使用MS Log Parser 2.2从FTP下载了文件 虽然我使用了几个示例查询,但我还无法启动解析器SQL查询 水下解析器查询不起作用: strSQL=选择日期,将*计算为下载,c-ip strSQL=strSQL&来自C:\temp\Log\*.Log strSQL=strSQL&其中cs method='RETR' strSQL=strSQL&按日期分组,c-ip 错误: 问题: 如何创建查询: - SELECT Date and Time of download
- SELECT Date and Time of download
- Where user = 'xxx'
- WHERE RETR = is a download
- WHERE Filename = u_ex150709.log or xxx
也欢迎用C语言回答
VB.net代码:
将rsLP设置为ILogRecordset=Nothing
将行LP变暗为ILogRecord=无
Dim LogParser作为LogQueryClassClass=Nothing
将W3Clog设置为COMW3CInputContextClassClass=Nothing
Dim UsedBW As Double=0
Dim UNITS作为整数处理
作为字符串的Dim strSQL=无
LogParser=新的LogQueryClassClass
W3Clog=新的COMW3CInputContextClassClass
尝试
strSQL=选择日期,将*计算为下载,c-ip
strSQL=strSQL&来自C:\temp\Log\*.Log
strSQL=strSQL&其中cs method='RETR'
strSQL=strSQL&按日期分组,c-ip
'对W3C日志运行查询
rsLP=LogParser.ExecutestrSQL,W3Clog
'错误发生在下面的行中
rowLP=rsLP.getRecord
就像你一样,我也编写了利用LogParser的工具,例如
虽然早在2004年使用.Net 1.1时,我就没有下载的好处:
检查他们的源代码,让查询在VisualParser中工作,然后在项目中简单地引用它,享受开源社区的乐趣
关于您对FTP欺骗的疑问,以下是MSDN文章:
当查看我创建了一个GUI来动态创建的查询时,您的查询有一点非常突出,即文件路径中缺少单引号:
试试这个:
strSQL = strSQL & "FROM 'C:\temp\Log\*.log' "
并使用StringBuilder,而不是字符串连接。。。只是为了养成最佳实践的习惯
根据:
如果引号不能解决问题,请先尝试单个日志文件,而不是
通配符*.log以缩小语法错误的范围。LogParser不是
旨在帮助诊断问题查询,而不是Gabriele
朱塞皮尼设计的
您能提供示例日志吗?在调用最后一行之前,rsLP.atEnd的值是多少?
SELECT date,COUNT(*) AS downloads,c-ip,x-session
FROM *.log
WHERE cs-method='RETR'
GROUP BY date,c-ip,x-session
HAVING COUNT(*) > 100
strSQL = strSQL & "FROM C:\temp\Log\*.log "
strSQL = strSQL & "FROM 'C:\temp\Log\*.log' "