Logparser quick and dirty
Sometimes you must find information in text files. Many,many text files, like IIS logs or other custom non-regular formats.
I have a bot from http://www.imified.com/ – and I log the messages with log4net in text files, with another messages.
An entry looks like that :
System.ArgumentException: ;channel=private;botkey=<guid>;userkey=<guid>;user=name@yhaoo.com;network=Yahoo;msg=hello;step=1;value0=hello;to=asdasd
And there are multiple log files that I want to parse and find the email adresses to collect feedback from those persons that use my bot.
LogParser to the rescue! Download from http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en and use this command line
LOGPARSER “Select Text into a.csv from current* where Text like ‘%@%'” -i:TEXTLINE
Explanation of command :
Select Text into a.csv from current* where Text like ‘%@%’ –means find in files that begin with current(current*) all text that contains emails ( ‘%@%’) and put in file a.csv the results.
-i:TEXTLINE – means the format is text
What can be more simple ?
(Ok, for finding the user name I had to resort to excel, to remove duplicates … )
More I think it is fast enough : for parsing 114 files with 58.8 MB (PC with a 2GB RAM + 7200 RPM ) the results are :
Statistics:
———–
Elements processed: 487176
Elements output: 1044
Execution time: 7.69 seconds
Also logparser can be used for more than text files :
http://support.microsoft.com/kb/910447
http://www.stevebunting.org/udpd4n6/forensics/logparser.htm
More, it can be as a COM DLL in every .NET project, making it a usefull tool . See
http://www.codeproject.com/KB/recipes/SimpleLogParse.aspx
Next time I will show the using Powershell in combination with LogParser.
Leave a Reply