LogParser是微软官方出品的用于读取分析IIS日志的工具,使用类SQL语句过滤文本日志内容,并可将内容导出到csv、sqlserver作进一步分析
目前最新版本为2.2,下载后一直下一步,默认安装目录为:C:\Program Files (x86)\Log Parser 2.2\
一、获取IIS日志
记日志时间默认是UTC,如要使用本地时间记录,可勾选下面的项目:
日志各字段含义:
二、使用logparser读取IIS日志(假设日志在C:\u_ex150629.log)
2.1 命令行定位到logparser目录:cd C:\Program Files (x86)\Log Parser 2.2\
2.2 查询日志文件(会在命令行输出):logparser -i:iisw3c -o:csv "SELECT * FROM C:u_ex150629.log"
2.3 导出导出CSV文件:logparser -i:iisw3c -o:csv "SELECT * FROM C:u_ex150629.log" >C:\a1.csv
2.4 导出到SqlServer:logparser "SELECT * FROM C:\u_ex150629.log TO IISLog_table" -o:SQL -server:127.0.0.1 -driver:"SQL Server" -database:test -username:sa -password:123 -createtable:ON
2.5 本地时间写入SqlServer:logparser "SELECT TO_LOCALTIME(TO_TIMESTAMP(ADD(TO_STRING(date, 'yyyy-MM-dd '), TO_STRING(time, 'hh:mm:ss')),'yyyy-MM-dd hh:mm:ss')) AS RequestTime,* FROM C:\u_ex150629.log TO IISLog_table" -o:SQL -server:127.0.0.1 -driver:"SQL Server" -database:Log_IIS -username:sa -password:123 -createtable:ON
2.6 新增日志内容过滤条件(这里一定用<>,使用!=执行失败):logparser "SELECT * FROM C:\u_ex150629.log TO IISLog_table WHERE sc-status<>200 OR time-taken>200" -o:SQL -server:127.0.0.1 -driver:"SQL Server" -database:Log_IIS -username:sa -password:123 -createtable:ON
2.7 SqlServer表新增自增长列:a) 在表中新增自增长字段,如Id b)SELECT 1,* FROM(在select语句后新增1,导入SqlServer时会自动写入自增长
三、注意事项,也是使用过程中的坑
1、windows7和windows server命令行定位目录命令不同,windows server定位到c盘根目录(cd /d c:),一般开发环境是windows7,部署环境是server,请注意
2、logparser的命令语句要在命令行执行,必须先在文本编辑器中变成一行,如果是多行拷贝到命令行执行就会失败
2、logparser的命令语句要在命令行执行,必须先在文本编辑器中变成一行,如果是多行拷贝到命令行执行就会失败
3、logparser安装目录下有个文件夹Samples是示例程序,但sql示例有些不靠谱