我想从System.Diagnostigs.DebugNET Core 获得输出.任何方式都值得赞赏,但最好的我希望Debug在控制台中看到输出.我尝试使用这样的代码:
TextWriterTraceListener myWriter = new
TextWriterTraceListener(System.Console.Out);
Debug.Listeners.Add(myWriter);
Run Code Online (Sandbox Code Playgroud)
但收到错误:
'Debug' does not contain a definition for 'Listeners'
Run Code Online (Sandbox Code Playgroud)
我错过了什么?是否可以System.Diagnostics.Debug在.NET Core中使用?
我用netcoreapp1.0框架.
更新:对于Windows我找到了一个工具DebugView中,其中显示了从输出Debug,https://technet.microsoft.com/en-us/sysinternals/bb896647.aspx,但问题仍然是实际用于Linux和Console输出.
svi*_*ick 12
在.Net Framework中,Debug.WriteLine并且Trace.WriteLine是相同的,唯一的区别是Debug.WriteLine在设置DEBUG符号时Trace.WriteLine启用,而在设置TRACE符号时启用.
在.Net Core中,Trace.WriteLine仍然表现得像,但Debug.WriteLine有一个完全不同的实现,不使用Listeners,我不知道为什么(你可能会考虑在corefx repo上询问).
Unix实现Debug.WriteLine也对COMPlus_DebugWriteToStdErrenvirnment变量进行了显式检查,当它设置时,它将输出Debug.WriteLine到标准错误输出.
这意味着如果您使用COMPlus_DebugWriteToStdErr=1 dotnet run运行您的应用程序,它将工作.
如果您确实想使用侦听器,则需要使用Trace.WriteLine.
| 归档时间: |
|
| 查看次数: |
2862 次 |
| 最近记录: |