(Note: This is a two part blog post. First part is a product announcement, second part is a question to developers)
I've written a small program called TraceMonitor that is used to capture output from Trace.Write & Debug.Write, etc. I'm re-releasing it to the development community in the hopes that some people can get some use out of it. It's based on DBMon.exe, but allows a finer granularity in filtering and display. It displays an aggregate log, and also splits output from each program into it's own log so you can view an individual session. You can get it at http://www.szurgot.net/projects/default.aspx under TraceMonitor.
I love the Trace.WriteLine & Debug.WriteLine functionality as a debugging tool. It's great to be able to add non-visible program output that can be captured and displayed by a secondary program. You can track changes to the data without having to drop into a debugger all the time, and remove the trace output with no impact to the actual program. It's obvious that somebody at MS likes it, because there is a decent amount of classes to allow for output, and granularity of output in the System.Diagonstic namespace.
My question is, what do other people use to capture this data. I know of three programs that do it (four if you count mine). One is dbmon.exe, a console based version that just spits everything out to a console window. One is SysInternals DbgView, which is pretty nice in that you can connect to another machine and view it's Trace/Debug/OutputDebugString output. The third, of course, is Visual Studio, which capture the info of a program running in Debug mode. Are there any others that people use? What makes the good or bad?
I wrote my TraceMonitor program (for one reason) because I couldn't stand the fact that alot of programs leave Trace/Debug statements in release versions, so my debugging gets all messed up when I'm running some of these programs. (MusicMatch dumps tons of output to the Trace, especially when ripping CDs, Visual Studio even sends a few lines, even though it's not much.) Does anybody else run into this problem, or are there other programs out there that allow you to filter out programs.
Anyway, please try out the program, and any comments, pointers to existing programs are greately appreciated.