首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Trace.WriteLineIf与Trace.Error的区别

Trace.WriteLineIf与Trace.Error的区别
EN

Stack Overflow用户
提问于 2011-02-25 19:54:31
回答 2查看 2.9K关注 0票数 1

我发现的大多数例子都使用Trace.WriteLineIf。

代码语言:javascript
复制
       `Trace.WriteLineIf(mySwitch.TraceError,"my error");'

但使用Trace.TraceError("my error");似乎会得到相同的结果(当发送到TextWriterTraceListener时)。

这两种方法有什么不同?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-25 21:55:55

仅当mySwitch.TraceError为true时,代码Trace.WriteLineIf(mySwitch.TraceError,"my error");才会生成输出,无论mySwitch.TraceError的值如何,Trace.TraceError("my error")都会生成输出

Trace.TraceError使用跟踪事件类型Error为每个跟踪侦听器调用TraceEvent方法,并向跟踪侦听器发送一条消息。

Trace.WriteLineTrace.WriteLineIf只是向跟踪侦听器发送一条消息。

考虑使用TraceSource。TraceSource是升级后的跟踪系统。

编辑@Robert Snyder

跟踪仍然存在,没有标记为过时,所以我没有理由不使用它。然而,在现实世界的大型解决方案中,我会更喜欢TraceSource:

  • TraceSource更具可配置性,您可以更好地控制粒度/过滤(TraceSwitch、TraceListener),这在您处理多个assemblies.
  • It时非常有用更容易跟踪额外信息、调用堆栈、线程information...

http://msdn.microsoft.com/en-us/magazine/cc163767.aspx

有关更多详细信息,请参阅John Robbins的文章:

票数 3
EN

Stack Overflow用户

发布于 2011-02-25 20:36:26

我认为这里的主要区别是,如果满足任何布尔条件,Trace.writeLineIf都是正确的。

例如Trace.writeLineIf(条件=真,“满足条件”)

我认为你上面描述的模式可能是对Trace.WriteLineIf的“滥用”,但我愿意告诉你不同的说法。

请参阅Here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5116913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档