所以我可能在这里忽略了显而易见的事实,但TraceSwitch
和SourceSwitch
类的功能之间究竟有什么区别呢?
他们都给出相同的摘要说明:
提供多级开关来控制跟踪和调试输出,而无需重新编译代码。
备注部分是否与我的眼睛奇怪相似。有人可以澄清其功能和使用案例的差异吗?
(为了完整性,我使用的是带有TraceSource
对象的开关,而不是旧的静态Trace
类,但我怀疑它有多大区别。)
答案 0 :(得分:10)
区别在于TraceSwitch
适用于Trace
条消息,而SourceSwitch
适用于TraceSource
条消息,这些消息会将消息与其来源相关联。因此,使用SourceSwitch
,您可以根据跟踪消息的来源配置监听器。
我同意文档并没有直接指出差异,而是在相关的TraceSource
类文档中进行挖掘,你会发现:
TraceSource
类由标识 源的名称,通常是 应用程序的名称。踪迹 来自特定的消息 组件可以由a启动 特殊的痕量源,允许所有 来自该组件的消息 容易识别。
还有一个示例向您展示如何配置SourceSwitch
以关闭跟踪源的跟踪。
答案 1 :(得分:6)
(较旧的)TraceSwitch基本上是一个TraceLevel对象,与静态Trace类结合使用。
(较新的)TraceSource将TraceLevel概念与实际输出方法相结合。
因此,在大型应用程序中,您可以使用多个TraceSwitch为程序的不同部分(GUI,DAL)配置跟踪设置,但所有输出都将发送到相同的TraceListener。
使用TraceSource,您可以拥有独立的输出通道。还有一个稍好的API。
答案 2 :(得分:0)
对TraceLevel和SourceLevel之间差异的这种解释可能有所帮助: