有没有办法在C#中捕获调试消息,然后将它们输出到一个单独的窗口?

Gab*_*eek 4 .net c# debugging tracelistener

我花了3天的时间来查看这个,我找不到一个可靠的答案.我想捕获调试消息,然后将它们输出到列表日志.我想用C#做这个.希望社区的一些帮助指出我正确的方向.

Cod*_*ray 7

嗯,确定这是可能的.调试输出不限于在输出窗口中显示.

您所要做的就是编写自定义侦听器并将其添加到Debug.Listeners集合中.您可以在MSDN上找到有关添加跟踪侦听器的完整文档.

唯一需要注意的是监听器是为调试和跟踪输出共享的,所以如果你添加一个,你将收到两种类型的消息.

如果这听起来像是太多的工作,你只需要一个快速而肮脏的解决方案,你可以从Sysinternals 下载免费的DebugView实用程序.这个简洁的小工具是您运行的独立应用程序,它会侦听计算机上安装的所有程序的所有调试输出.如果您使用它,您甚至不必更改应用程序中的单行代码 - 所有输出发送到的Debug.Write将显示在DebugView窗口中.

或者,如果您正在寻找可能随附应用程序的长期内容,我建议您调查添加日志记录功能.有许多优秀的开源库可以提供此功能,当您的应用程序部署到具有未知配置的系统时,它可以在现场非常宝贵.