Larkware

We get up early so that you don't have to.

Review: SmartInspect Professional

SmartInspect Professional, $229
Gurock Software GmbH
Paderborn, Germany
+49 (0) 5251 / 8769160
http://www.gurock.com/

SmartInspect is a nicely polished and flexible logging solution that works with .NET, Java, and Delphi applications. Being as I'm mainly a .NET guy, I tested out the .NET support, but their architecture offers unified logging from all three types of applications to a single viewer. After playing with it for a while, I'm impressed with how slick this piece of software is, and especially with the depth of information that you can easily log. On the .NET side of the equation, at least, it beats the hell out of the built-in Trace and Debug classes (with which, incidentally, you can easily integrate SmartInspect: there's a SmartInspectTraceListener class that lets you redirect your existing tracing output to the SmartInspect console).

The installation was painless, and results in having a library registered and the console ready to launch, along with a PDF manual and detailed help file. Adding logging support to an application is pretty easy: set a reference to the library, make a single call to spin up the engine, and you're there. You can log directly to the console in real time as long as you can see it via TCP/IP (there's a little connection builder utility to help you set up connection strings for this), or dump the logs to a file for later analysis). Most logging is done via calls to the SiAuto.Main object, which has a raft of useful methods. For example, there's a simple LogMessage method that just pumps a string over to the console. But there's also LogObject, which gives you all the fields and properties of an arbitrary object, LogJpegFile, which pulls an image off of disk (the console includes an image viewer, along with many other viewers), LogReader to show you what's in a text reader, LogSql to push over syntax-highlighted SQL code, and on and on. This flexibility in what you can log, and the associated display flexibility in the viewer, makes SmartInspect much more useful than just tracing text messages to the debug window.

Beyond sending over objects, you can also log processes and threads (though this does require inserting extra calls in your source code - it's not magic), create custom log entries via an exposed API, and exert control over the formatting of log entries from your source code. The console offers a whole bunch of additional flexibility, including multiple views, filtering, XML, HTML, and CSV export, the ability to insert comments, watch support, and an AutoViews feature which can open up new views when, for example, a new thread or process spins up in your application.

SmartInspect comes in two flavors. The Professional version includes the full functionality and the source code for the application's libraries. There's also a free Personal edition that you can download to try out SmartInspect and see how it works. Some of the more advanced features (such as AutoViews, filtering, and exporting) have been removed from the Personal edition, and the Personal edition is only licensed for non-commercial projects. Overall, I think Gurock has done an excellent job with this particular piece of software, and I expect I'll be using it in my own production applications in the future.

  Click for larger screenshot

Mike Gunderloy is the lead developer for Larkware and author of numerous books and articles on programming topics.