繁体   English   中英

System.Diagnostics.Trace,System.Diagnostics.Debug和System.Console有什么区别?

[英]What's the difference between System.Diagnostics.Trace, System.Diagnostics.Debug and System.Console?

据我了解, System.Console默认情况下将写入STDOUT,但是System.Diagnostics.TraceSystem.Diagnostics.Debug呢? 有哪些默认行为,并且它们可以以任何方式配置吗?

似乎也有不同的人(在互联网上)使用不同的东西,但是我假设我发现的大多数东西都是错误的,因为每种东西都应该有特定的语义,对吗? 如果是这样,是否有任何框架(例如ASP.NET或WPF)专门使用这些框架?

也是最后一个问题,选择使用哪种规则是什么经验法则?

DebugTrace都写到同一位置,即Listeners集合。 默认情况下,它被路由到Visual Studio的“调试”窗口,但是您可以在不进行调试时将代码放在app.config文件中,以将其重定向到其他位置。

之间的差异DebugTrace是所有的方法Debug的时候才会写出来DEBUG编译符号设置(默认情况下调试,关闭发布)当符号没有设置方法永远不会在你的代码中调用。 跟踪查找TRACE符号(调试和发行版均默认启用)。 除此之外,这两个类是相同的。 实际上,如果您修改Debug.Listeners以添加新的侦听器,它也会同时修改Trace.Listeners因为它们都都指向内部静态属性TraceInternal.Listeners

至于选择使用哪个,您是否要在发布和调试模式下显示诊断信息? 使用跟踪,仅调试? 使用调试。 您是否希望在不连接调试器的情况下对最终用户可见? 使用控制台或添加控制台跟踪侦听器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM