输出System.Diagnostics.Debug到Console

时间:2016-06-17 15:45:59

标签: .net .net-core

我想从NET Core中获取Debug的输出。感谢任何方式,但最好我希望在控制台中看到TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out); Debug.Listeners.Add(myWriter); 的输出。我尝试使用这样的代码:

'Debug' does not contain a definition for 'Listeners'

但收到错误:

System.Diagnostics.Debug

我错过了什么?是否可以在.NET Core中使用netcoreapp1.0

我使用Debug框架。

更新: 对于Windows,我找到了一个工具DebugView,它显示Consolehttps://technet.microsoft.com/en-us/sysinternals/bb896647.aspx的输出,但问题仍然是Linux和DynamicComponentLoader输出的实际问题。

1 个答案:

答案 0 :(得分:10)

在.Net Framework中,Debug.WriteLineTrace.WriteLine是相同的,唯一的区别是Debug.WriteLine符号设置时启用了DEBUG,而{{1设置Trace.WriteLine符号时启用。

在.Net Core中,TRACE的行为仍然如此,但Trace.WriteLine有完全不同的实现,并且不使用Debug.WriteLine,我不知道为什么(你可能会考虑在the corefx repo询问。

The Unix implementation of Debug.WriteLine也明确检查Listeners环境变量,当它设置时,它会将COMPlus_DebugWriteToStdErr输出到标准错误输出。

这意味着如果您使用Debug.WriteLine来运行您的应用程序,它将起作用。

如果您确实想要使用听众,则需要使用COMPlus_DebugWriteToStdErr=1 dotnet run