我想从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,它显示Console
,https://technet.microsoft.com/en-us/sysinternals/bb896647.aspx的输出,但问题仍然是Linux和DynamicComponentLoader
输出的实际问题。
答案 0 :(得分:10)
在.Net Framework中,Debug.WriteLine
和Trace.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
。