我有一个外部DLL,其源代码是C#。从DLL的文档中,我确定它使用Console.WriteLine
将其调试消息写入控制台。
我想在WinForms应用程序中使用此DLL。但是,我发现我无法看到DLL发出的调试消息,因为WinForms应用程序没有控制台。
有没有办法捕获那些调试消息,甚至可能是一个简单的日志文件?当然,使用ProcessInfo.RedirectStandartOutput
将不起作用,因为我不将DLL用作进程。
答案 0 :(得分:14)
使用您控制的TextWriter调用Console.SetOut(例如StringWriter)。
答案 1 :(得分:4)
最好使用System.Diagnostics命名空间和Debug.WriteLine。 Debug支持可以在运行时或通过app / web.config文件添加的“侦听器”。例如: -
Debug.Listeners.Add(new ConsoleTraceListener())
如果将任何自定义调试日志记录实现为跟踪侦听器,则可以非常轻松地捕获应用程序范围内的跟踪消息。