LogParser是微软官方出品的用于读取分析IIS日志的工具,使用类SQL语句过滤文本日志内容,并可将内容导出到csv、sqlserver作进一步分析
目前最新版本为2.2,下载后一直下一步,默认安装目录为:
C:\Program Files (x86)\Log Parser 2.2\
一、获取IIS日志
![](https://i-blog.csdnimg.cn/blog_migrate/9f910f1897f0eb8f88d478ffd05f85b7.png)
记日志时间默认是UTC,如要使用本地时间记录,可勾选下面的项目:
![](https://i-blog.csdnimg.cn/blog_migrate/15cbf227325314f472c0c973be40ba49.png)
日志各字段含义:
![](https://i-blog.csdnimg.cn/blog_migrate/52e41a36312fe909d06b9875f28be941.png)
二、使用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
![](https://i-blog.csdnimg.cn/blog_migrate/dff3ddea4013624063c37d3368494a05.png)
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示例有些不靠谱
附件列表