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

6
我有一个外部的 DLL,它的源代码是 C#。从 DLL 的文档中,我确定它使用 Console.WriteLine 将其调试消息写入控制台。
我想在 WinForms 应用程序中使用此 DLL。但是,我发现由于 WinForms 应用程序没有控制台,因此无法查看 DLL 发出的调试消息。
有没有一种方法可以捕获这些调试消息,甚至将其写入一个简单的日志文件中?当然,使用 ProcessInfo.RedirectStandartOutput 并不能起作用,因为我没有将 DLL 作为进程使用。
2个回答

14

调用Console.SetOut,并传入一个你控制的TextWriter(比如StringWriter)。


4

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

  Debug.Listeners.Add(new ConsoleTraceListener())

如果您实现了任何自定义的调试日志记录器作为跟踪侦听器,您可以非常容易地捕获整个应用程序中的跟踪消息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接