TraceSwitch和SourceSwitch - 有什么区别?

Nol*_*rin 9 .net trace traceswitch

所以我可能在这里忽略了明显的,但实际上TraceSwitchSourceSwitch类的功能有什么区别?

它们都给出相同的摘要说明:

提供多级开关来控制跟踪和调试输出,而无需重新编译代码.

备注部分是否与我的眼睛奇怪相似.有人可以澄清其功能和使用案例的差异吗?

(为了完整性,我使用带有我的TraceSource对象的开关,而不是旧的静态Trace类,但我怀疑它有很大的不同.)

Gra*_*meF 10

不同的是,TraceSwitch有工作Trace,而信息SourceSwitch与作品TraceSource的消息,该消息与它们的源关联.因此,SourceSwitch您可以根据跟踪消息的来源配置监听器.

我同意文档没有直接指出差异,但在相关的TraceSource类文档中挖掘,你会发现:

TraceSource类是由一个源时,应用程序的一般的名称的名称来标识.来自特定组件的跟踪消息可以由特定跟踪源启动,允许轻松识别来自该组件的所有消息.

还有一个示例显示如何配置a SourceSwitch以关闭跟踪源的跟踪.


Hen*_*man 7

(较旧的)TraceSwitch基本上是一个TraceLevel对象,与静态Trace类结合使用.

(较新的)TraceSource将TraceLevel概念与实际输出方法相结合.

因此,在大型应用程序中,您可以使用多个TraceSwitch为程序的不同部分(GUI,DAL)配置跟踪设置,但所有输出都将发送到相同的TraceListener.

使用TraceSource,您可以拥有独立的输出通道.还有一个稍好的API.