Diagnostic Explorer is a .Net library and web site which allows developers to expose and view arbitrary diagnostic information about their .Net processes. Properties of .net objects constructed and held in memory can be easily exposed and viewed alongside logging information generated by frameworks such as log4net. I have been developing and using Diagnostic Explorer in production systems for the last 5 years, and found it an invaluable tool for monitoring .net processes and quickly solving issues.
Various logging frameworks exist, such as log4net and Microsoft’s Logging Application Block, and performance counters can be used to expose performance metrics for certain types of data. I found existing techniques to be unwieldy, so I wrote a simple website which used a remoting interface to fetch and display a collection of key/value properties from the windows service. The project evolved as I realised how to make this technique more generic, and several technologies later (remoting, html, AJAX, Winforms, WPF, and finally WCF/Silverlight) Diagnostic Explorer is the result.