因此,我可能在这里很明显,但是实际上是 TraceSwitchSourceSwitch 课程?

他们都给出了相同的摘要描述:

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

言论部分与我的眼睛奇怪。有人可以澄清其功能和使用情况的差异吗?

(为了完整,我正在使用开关 TraceSource 对象,而不是旧的静态 Trace 上课,尽管我怀疑这有很大的不同。)

有帮助吗?

解决方案

区别在于 TraceSwitch 使用 Trace 消息时 SourceSwitch 使用 TraceSource 消息,将消息与他们的源相关联。所以 SourceSwitch 您可以根据跟踪消息的来源来配置侦听器。

我同意文档并没有直接指出差异,而是在相关的 TraceSource 类文档,您会发现这一点:

TraceSource 类通过源名称标识,通常是应用程序的名称。来自特定组件的跟踪消息可以由特定的跟踪源启动,从而使来自该组件的所有消息都可以轻松识别。

还有一个示例向您展示如何配置 SourceSwitch 关闭从跟踪源的跟踪。

其他提示

(较旧的)TraceSwitch基本上是一个与静态跟踪类组合使用的曲侧对象。

(较新的)Tracesource将Tracelevel概念与实际输出方法结合在一起。

结果,在一个大型应用程序中,您可以使用多个tracewitches为程序的不同零件(GUI,dal)配置跟踪设置,但所有输出都将发送到同一tracelistener(s)。

使用TraceSource,您可以拥有独立的输出通道。和稍好的API。

关于Tracelevel和Sourcelevel之间差异的解释可能有助于:

system.diagnostics隐藏源

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top