The other day I ran across DebugView by Sysinternals. After playing with it for a few I suddenly had a re-found love for System.Diagnostics.
“DebugView is an application that lets you monitor debug output on your local system, or any computer on the network that you can reach via TCP/IP. It is capable of displaying both kernel-mode and Win32 debug output, so you don’t need a debugger to catch the debug output your applications or device drivers generate, nor do you need to modify your applications or drivers to use non-standard debug output APIs.” from Sysinternals
This means you have a nice little exe you can carry on a thumb drive and collect those trace events at runtime on from any machine. Let’s look at some code.
First define a TraceSwitch. This switch gives you the ability to determine when to throw an event. You can define multiple switches. public static TraceSwitch GeneralTraceSwitch = new TraceSwitch(”General”, “My Trace Switch”); if ( GeneralTraceSwitch.TraceError ) Trace.TraceError( “YOUR ERROR MSG” );
public static TraceSwitch GeneralTraceSwitch = new TraceSwitch(”General”, “My Trace Switch”); if ( GeneralTraceSwitch.TraceError ) Trace.TraceError( “YOUR ERROR MSG” );
Now let’s setup configuration. There are two major sections, listeners and switches. Listeners define where System.Tracing should send your events. The example below sends events to both the EventLog and a text file. Having said that has no influence on DebugView, you do not have to define a listener for DebugView to pick them up. The switches section defines the level of events to throw. 1 is the minimal number of events, while 4 is everything.
<configuration > <system.diagnostics > <trace autoflush=”true” indentsize=”0″ > <listeners > <add name=”EventLogTraceListener” type=”System.Diagnostics.EventLogTraceListener” initializeData=”Team Build”/> <add name=”TextWriterTraceListener” type=”System.Diagnostics.TextWriterTraceListener” initializeData=”.\ci.log” /> </listeners > </trace > <switches > <add name=”General” value=”4″ /> </switches > </system.diagnostics ></configuration >
<configuration > <system.diagnostics > <trace autoflush=”true” indentsize=”0″ > <listeners > <add name=”EventLogTraceListener” type=”System.Diagnostics.EventLogTraceListener” initializeData=”Team Build”/> <add name=”TextWriterTraceListener” type=”System.Diagnostics.TextWriterTraceListener” initializeData=”.\ci.log” /> </listeners > </trace > <switches > <add name=”General” value=”4″ /> </switches >
</system.diagnostics ></configuration >
Remember Me
Page rendered at Wednesday, November 19, 2008 5:38:32 AM (Central Standard Time, UTC-06:00)
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.