SmartInspect by Gurock Software


VB.NET Forum Admin
Jun 3, 2004
Programming Experience

Gurock Software brings the .NET community the answer to "logging" for debugging and monitoring your .NET applications. .NET provides much improved support for capturing TRACE and DEBUG information in various log formats courtesy of the DefaultTraceListener class, but as usual with "out of the box" Visual Studio technology, someone can always do it better. Gurock Software has done just that, they have provided the answer to your dreams in the department of capturing and tracking vital information in your .NET applications, whether Winforms, Web, Console, or Windows Services, SmartInspect is the perfect answer for its calling!

VB.NET developers have it much easier with VS 2005 using the My.Application.Log class to record information, typically errors that occur in the testing of your application. There are many limitations along the implementation of the My.Application.Log concept, mainly that your application has to use DEBUG and/or TRACE constants, i.e. building and monitoring in DEBUG mode. SmartInspect doesn't have this limitation, it is there to record information as you see fit.

SmartInspect is just what you expected in a logging utility, and more. SmartInspect integrates seamlessly into any .NET application by referencing one DLL, and they even provide the source so you can compile it and name it as you wish to keep your naming conventions consistent in your deployment. SmartInspect provides complete control over the "level" of information recorded through a LEVEL property. You can set log levels to Debug, Verbose, Messages, Warnings, Fatal Errors, etc. Therefore you can code in the various levels of logging as required and your end-users can set the amount of information that is to be recorded by SmartInspect. If your end-users think they are having a problem you can have them change the logging level to a DEBUG setting and capture as much information as you have coded in for this scenario. For normal use, a "Message" level option would typically be used, capturing markers you want to note should something go awry.

SmartInspect logs just about anything in your application from collections, DataSets, variables, images, binaries, on and on. There are tons of methods for logging just about anything to capture into the log file for later viewing in a structured format. For example, if you want to log your SQL Query String and then the DataSet of the results, you can view the DataSet in a grid format directly in the SmartInspect Log Viewer utility. You can use methods such as Logger.EnterMethod("SaveData") and then close out your code in that method with a Logger.LeaveMethod("SaveData") and you can encapsulate everything that occurred between these two markers in a collapsible region within the SmartInspect Viewer.

Listing 1: Code example to log a message to SmartInspect

SiAuto.Si.Connections = "file(filename=c:\log.sil)"
SiAuto.Si.Enabled = True
SiAuto.Main.LogMessage("First Message!")
There are so many neat things SmartInspect offers, one of my favorites is that you can use "sessions" within different assemblies and then color code each session. For example, your main application would be a Logger.Session("Main App") and you could set the Logger.Session.Color property. Then create a session for your Utility class, give it a color assignment, a session for your Data Access Layer, assign it a color, and then when you view your log files, they are color coded for you in the viewer based on which assembly (session) wrote the information. It truly helps you see what is happening, by which component, and as much detail as you care to record.

SmartInspect lets you monitor multi-threaded operations, processes, you name it! You can see how long a process runs, i.e. your Background Workers, and track information that goes on within a multi-threaded operation. SmartInspect includes a TCP trace listener so not only can you log data directly a log file, memory, but also you can watch the data being recorded while your application is running! So as you launch your application with your new code section, you can have the SmartInspect viewer open along side and see the logging occur as your application runs. This is great for profiling as well as you can see how many times a method is being called, you can set Watches, and truly debug your application in a much more efficient and effective way, thanks to Gurock's ingenious SmartInspect component!

The SmartInspect console (shown above) can show you so much information you never knew was available. You can filter by various items, i.e only show me events from my Data Access Layer, particular applications, endless filter options! All of this data is also recorded, if coded into your application, by your end user with your production application that integrates SmartInspect, which takes no time at all to implement! The data is recorded into a binary which you can have e-mailed as an attachment in a bug reporter system and then you can open the log file in the SmartInspect viewer and save hours upon hours of troubleshooting time with a clear presentation of exactly what happened, what queries, values, results, actions, you name it! The possibilities are endless, an affordable dream come true is here for us .NET developers looking to do application logging and monitoring right!

Gurock Software is affordable with pricing available at the Gurock Online Store. Royalty free distribution and source code is included, this product is worth much more than what Gurock Software is charging! For our readers, Gurock Software is offering a discount allowing you to take 20% off your purchase through July 15th! When checking out from their store, use the coupon code J349HP9F. Again, this offer expires July 15, 2007, so take advantage of this special offer for our VB.NET readers!

Gurock Software web site resources:
-Home Page
-Feature list
-Screen Shots
-Helpful Articles
-Online Store
Top Bottom