在Windows窗体应用程序中使用Console.WriteLine

时间:2008-12-14 09:42:14

标签: c# winforms debugging logging

我有一个外部DLL,其源代码是C#。从DLL的文档中,我确定它使用Console.WriteLine将其调试消息写入控制台。

我想在WinForms应用程序中使用此DLL。但是,我发现我无法看到DLL发出的调试消息,因为WinForms应用程序没有控制台。

有没有办法捕获那些调试消息,甚至可能是一个简单的日志文件?当然,使用ProcessInfo.RedirectStandartOutput将不起作用,因为我不将DLL用作进程。

2 个答案:

答案 0 :(得分:14)

使用您控制的TextWriter调用Console.SetOut(例如StringWriter)。

答案 1 :(得分:4)

最好使用System.Diagnostics命名空间和Debug.WriteLine。 Debug支持可以在运行时或通过app / web.config文件添加的“侦听器”。例如: -

  Debug.Listeners.Add(new ConsoleTraceListener())

如果将任何自定义调试日志记录实现为跟踪侦听器,则可以非常轻松地捕获应用程序范围内的跟踪消息。