在 C# 中捕获调试输出
Posted
技术标签:
【中文标题】在 C# 中捕获调试输出【英文标题】:Capture debug output in C# 【发布时间】:2011-02-18 00:57:14 【问题描述】:是否可以(创建调试侦听器)?
我想拥有像DebugView 这样的功能,但我想将调试输出记录到 SQL Server。或者更好的方法是将 DebugView 记录到文件中,然后将文件提供给 SQL Server?
我已经实现了TraceListener
并将其添加到Debug.Listeners
集合中,但它似乎只从我的应用程序中捕获调试。我想要做的是从所有应用程序中捕获调试。有没有办法做到这一点?
【问题讨论】:
很难从其他应用程序中获取信息。例如,除非我告诉你,否则你怎么知道我的应用程序如何输出调试信息。然而,几乎在所有情况下,只部署了“已发布”代码,因此没有“调试”信息。因此,捕获 DebugView 提供的信息(通过 Windows Debug)与您的合理预期差不多。 @AMissico - 我知道其他应用程序会输出调试信息,因为它们是这样编译的。我已经说过,我想做和 DebugView 一样的事情,但是将调试信息存储到数据库中。 【参考方案1】:除非您真的有特殊需要滚动自己的记录器,否则我会使用现有的记录框架,例如 log4net。它有一个 ADO.NET 附加程序,您可以将其配置为将调试或跟踪输出直接记录到 SQL Server。
【讨论】:
我需要捕获其他应用程序的调试输出,而不仅仅是我的,所以这不是关于“在哪里记录东西”,而是“如何从其他应用程序记录东西”【参考方案2】:DbMon.NET - http://www.codeproject.com/KB/trace/DbMonNET.aspx 上的一个简单的 .NET OutputDebugString 捕获器 似乎可以满足您的需求。
【讨论】:
以上是关于在 C# 中捕获调试输出的主要内容,如果未能解决你的问题,请参考以下文章