Log Parser.NET

This is where you can post about tools related specifically to the POL Server itself

Moderator: POL Developer

Post Reply
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm
Location: Cross Lanes, WV

Log Parser.NET

Post by MuadDib »

Upgraded several old PHP Log Parsers, and came up with a single .NET 2.0 Keyword Log Parser with Tools added in for specific POL Logs.

Complete with a Keyword List manager and editor, this Parser will allow you to open ANY text-based log file and search it for Keywords contained in the selected Keyword List you made. Results are given in a scrollable Text Box and can be saved in Text.log Format (as it appears in the window) or in a specialized XML Format. Results will give they Keyword found and the logline it was found on for each instance.

The Tools menu contains a section for POL Specialized Log Files. The files it lets you parse are Debug.Log and Script.Log. In Script.Log it finds instances of Runaway Scripts and gives you UNIQUE instances for each. It will display the Script Name and the LST Line the Error was found in. In Debug.Log it will report both Missing Config Files and Script Errors. Script Errors are reported by Script Name, LST line, Offending Function and Offending Parameter. Again, all these can be saved in Text Based log results or a specialized XML format.

The Keyword Editor lets you Add New keyword lists, save them, delete lists, and edit multiple lists. There is a part of the form where you enter your keywords for the list. Remember to click Save! :)

The Options page is self explanatory ;)

Any bugs or features, let me know. I am also posting the source code as it IS open source (don't make fun of my C# skills, this is my FIRST C# project). Will keep it updated as I make changes :)

Changelog:

Code: Select all

v1.0b6 (beta)
	12-16-2008 - MuadDib
		Got bored again. LogParser Class created and all related Parse/Save/Check code
			for main Log Parser moved to this Class. Variables needing Private security
			have been adjusted for higher security on the variables.
		Adjusted main Log Parser text output for readability.
		Fixed a crash in Saving log files when results was null.
		Changed storage methods for Parse results across the board. Uses less variables
			now and handled via internal iterator of foreach.
		Save buttons are no longer enabled if result length is less than 8. Why 8?
			Cuz that means not even "Keyword:" or "Script: " was written to the results.
			
	12-15-2008 - MuadDib
		Playing around. Tools Class removed and using just the Tools Namespace.
		ScriptLogResults Class added to Tools namespace. This contains all related
			helper functions and variables for the new ScriptLog Parse/Save handling
			written for this Class. All public variables/functions made Private.
		DebugLogResults Class added to Tools namespace. This contains all related
			helper functions and variables for the new DebugLog Parse/Save handling
			written for this Class. All public variables/functions made Private.
		DebugLogOutput.xml reformatted. Code adjusted to reflect the new format.
		
v1.0b5 (beta)
	12-14-2008 - MuadDib
		Debug.Log Parser now includes the Missing Config Files (only 1 instance of each)
			and puts them after all the Script Errors.
		Creation of new Tools Class. This will contain all the Tools related public code
		Added tooltips to the forms. Blah.
			
	12-13-2008 - MuadDib
		Save and Parse Code moved to Program class.
		Added *.* Filter in Open Log File Dialog.
		Command Line Parsing code put in.
		Command Line Arguments: (Hint: use "" when you have spaces in names or paths)
			Example: parser.exe "My List" C:\logs\logs.log C:\logs\parse_results.xml true
						will trigger parser.exe using Keyword List "My List" on the
						logs.log file and output XML to the filename give. True is for
						Case Sensitive. 
			<list> <logfile> <resultsfile> | <casesensitive>
			list          - Keyword List name as it appears in Keywords.xml
			logfile       - Absolute path and filename to parse: C:\logs\logfile.log
			resultsfile   - Absolute path and filename for results to be saved in: C:\logs\results.log
							Use extension xml for xml output, and log or txt for Text format output.
			casesensitive - true/false to use case sensitive feature for keywords. If none
							is given, it uses the Options.XML setting.
		Debug.Log Parser created under Tools->POL Log Files.

v1.0b4 (Beta)
	12-13-2008 - MuadDib
		Script.Log Parser File Format saving is now based on filetype select in the Dialog
			instead of options, just like main Log Parser. Options removed from Options
			Form.
		Save As option added to the File Menu in the Main Log Parser. This is disabled 
			until you Parse a log file. Duh.
		Case Sensitive Parse option added to the Options page. Will turn on/off Case
			Sensitivity for Keywords and Log Lines when Parsing in the main Log Parser.
			Turning it on causes the Log Line and Keyword to be set to all lower case
			during the Parse phase. Results are shown with Case intact.
	
	12-12-2008 - MuadDib
		Can now select which Keyword List to use in the Main Log Parser where the Welcome
			text use to be. Includes a refresh button to refresh after editing. When
			you go to parse, it also checks to make sure the selected List was not deleted
			in the Editor and resets if need be.
		Keyword Editor no longer uses the CurrentList for it's editing. It now can edit
			lists independantly without affecting other forms using CurrentList.
		Keyword Editor now refreshes all cells after a save to remove empty rows.
		Duplicate Keywords are now ignored in loading of Keywords.XML for a single List.
			They are also ignored in a single list when saving.
		Save As Text/Save As XML Options for main Log Parser removed from the Options
			page. This is now handled in the Save File Dialog by selecting the file type
			you want to save the file as.

v1.0b3 (Beta)
	12-10-2008 - MuadDib
		Can now create New Keyword Lists via the Keyword Editor page. List is not added
			until you click on the Save button.
		A selection box is now given in the Keyword Editor to show all Keyword List's names
			that are loaded into memory. Highlight is updated after saving New Lists.
		Keyword List saving rewrote. The Keyword Dictionary entry is added/updated for
			the current list in the Editor, THEN the XML file is written off of the
			Dictionary.
		Keyword Editor title now changes based on Keyword List being edited. Also updated
			to reflect when adding a new List that is not yet saved.
		Can now Delete selected Keyword Lists (must be able to have at least 1 left after
			delete or it will tell you that it can't). All views and Current List are
			reset to the first List in the Keyword Dictionary. Also gives a Confirm Box.
		Delete List is NOT PERM until you click on the Save Lists button.
		Loading Keylists in the Editor is now available.
		Options - New saved/loaded option called LastUsedList. Saves and Loads the last
			used Keyword List (gotten from the CurrentList global). LastUsedList is
			populated via the Keyword Editor (when selecting lists to use) and also
			will be populated via the Keyword List Selection when you parse.
		Note: Currently the main Parse Log screen uses the CurrentList setting instead
			of asking which Keyword List to use. This means you have to change lists
			by going to the Keyword List Editor and Loading a list there to change lists.
			This will change very soon :)
		
	12-09-2008 - MuadDib
		Added XML Comments for the Options.XML file. (was bored waiting on the coffee pot)
		Keyword Editor is now populated via the Dictionary Storage instead of array.
		Added List Name code to the Data Grid in the Keyword Editor (multilist not yet
			implemented). Defaults to "Current List" in the Editor, naturally.
			"MasterList" is the OVERALL default Keyword List name (if none given etc).
		Keyword loading changed. Instead of relying on the Keyword Editor to handle it all
			the Keyword Class now handles populating the useable variables.
		Keyword Class now handles keeping Count of totals and Keyword Lists. Began adding
			Dictionary code for a side-by-side implementation to make sure it all works before
			removing the current Array Method.
		Keywords are now ignored when loaded from the XML Doc if no "listname" attribute is set.
			Until Lists are added, system is using a hardcoded listname for all keywords.
		Main Log Parsing now uses the new Keyword Class Dictionary for Parsing.
			
v1.0b2 (Beta)
	12-08-2008 - MuadDib
		Keywords.XML is now saved/read in similar fashion as Options.XML. Next step will be
			to add the multi-lists support. Ugh.
		Created a Keywords.cs for handling an entirely new KeywordsCollection Class being
			designed to handle multiple keyword lists, etc. So far just cosmetic and
			restructuring the codebase. Haven't switched to Dictionary from Array yet.
		Adjusted color settings used on the TextBoxes and Group Boxes on main Parse window
			and ScriptLog Parse window. Hopefully takes care of an issue with Windows
			Vista (thanks for finding it Olds). Also started making a x86 and x64 build.
			Need to install second copy of XP for testing the x64, but lazy :/
			
	12-07-2008 - MuadDib
		Options.XML is now using InnerText for child Nodes when saving/reading Options.
		Script.Log Parser now checks for duplicate LST entries AND duplicate script name
			so the same Script can report Runaways for different parts of the source.
	
v1.0b1 (Beta)
	12-07-2008 - MuadDib
		Fixed a bug in the reading of the Tools Default Path.
		Added some images and layout files to the VS Solution File. These are for internal
			Solution tracking is all. Added all Documentation and Layout files also and
			set to Copy on Build for Releases. Less work for me, yay.

	12-04-2008 - MuadDib
		Save Feature added to Script.Log Parser. XML Format completed for Save.
		
	12-03-2008 - MuadDib
		Fixed Bug in setting the Default Log Path. Blah, hate typos.
		Revamped Collection System for keywords to minimize code.
		Added all options, menus, etc for the upcoming Tools->POL->Scripts.Log Parser.
			The Parser itself will parse a Script.log looking for Runaways and make
			a more readable report (remove duplicates etc). Allowing text/xml saving also.
		Script.Log Parser will currently remove duplicates based only on Script Name/Path.
			Results given is grouped by: 
			Script: <path/name>
			.LST Line: <.lst file line marked by ">" at position 1>

v1.0 Beta
	12-03-2008 - MuadDib
		XML Formatting on Save Results is now Implemented. Uses a set XML Layout format
			so that XSLT Sheets are possible for viewing generated output in a customized
			manner. Booyah! :/
		Current testing shows everything so far is working fine for plain text file
			parsing. Will send to a few peeps for more testing. Watch out Olds!
	12-02-2008 - MuadDib
		Global ArrayList Collector updated when Save button is used on Keyword List Form.
		Seperate Options pages combined to a single page with Ok/Reset buttons. Reset
			button resets them to the last loaded configuration.
		New Option: Save as Text or Save As XML in the Options Page. No XML Formatting
			is implemented as of yet. Want to design a XML Layout before I start this.
	11-30-2008 - MuadDib
		Initial Forms and Code created. All features tested to be working correctly.
		No ExceptionCatch engine is currently in place except checking for NULL entries.
		Functions similar to the original POL Log Parser written in PHP, but ported to
			be more multi-purpose in allowing individual selection of ANY text-based log
			files for parsing.
	
To-Do:

Code: Select all

To-Do List:

1.) Look into seeing if the ArrayList can be Serialized in any fashion in order to
	make saving code a hell of a lot less bulky for DebugLog and ScriptLog tools.
2.) Create an Ecompile.log/txt parser(?) to find Errors and Warnings from a captured
	Ecompile output file?
3.) Try to come up with some kind of Easter Egg on the About box. Maybe add some small
	 internal game to play or something. Or just some random string from a selection
	 of Buy us beer, get more stuff type of quote. lol.	 
4.) Rewrite Options Form and Options Class like the LogParser and Tools.
5.) Rewrite the Keyword Editor like the others.
Attachments
POL.Log Parser_snapshot-12_16_2008-10.27.rar
Source File Snapshot. Written in VS2k5.NET C#
(918.98 KiB) Downloaded 360 times
Log_Parser_v1.0b6_12-16-2008.zip
Log Parser Binaries
(53.72 KiB) Downloaded 386 times
Turley
POL Developer
Posts: 670
Joined: Sun Feb 05, 2006 4:45 am

Re: Log Parser.NET

Post by Turley »

I like your todo about the aboutbox, nice license btw :) Hail to Beer-ware!!!
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm
Location: Cross Lanes, WV

Re: Log Parser.NET

Post by MuadDib »

lol thanks. The License idea was all thanks to you, hehehe
xeon
Forum Regular
Posts: 338
Joined: Fri Oct 31, 2008 3:18 am
Location: Italy

Re: Log Parser.NET

Post by xeon »

Muadib the source code package seems corrupted, could you please reupload it?

*EDIT*
I found it in the \utils folder inside POL svn repository ;)


*EDIT 2*
Muadib, could you develop it to work in the reverse? I mean, display all log lines not matching some keyword? In this way you could check instanctly for some problem in the log, skipping all the known lines.
Post Reply