如何告知-all- .NET Trace Sources用户是否为侦听器?

时间:2013-06-27 01:27:29

标签: .net debugging web-config app-config tracesource

我有各种类库,其中包含跟踪源。工作正常。

在我的.config文件中,我需要具体说明哪个源会将其文本转储给侦听器。很好,效果很好。

但我有大约20个具有相同开关值和滤波器类型的信号源等。

那么,有没有办法说:对于-all-所有库中的源,使用此开关值,此过滤器和此侦听器。

实际上: 将所有跟踪信息转储到此/这些侦听器。

可以这样做吗?

1 个答案:

答案 0 :(得分:4)

使用shareListener标记,您将获得最大的疼痛减少:http://msdn.microsoft.com/en-us/library/ms229501.aspx

1个开关用于许多痕量源 - 没有。 1个监听器用于许多源 - 是的,共享监听器,我认为它仍然需要重复配置(但它们都指向同一个共享监听器)。 Filter--应该能够使过滤器成为共享侦听器的子元素,因此它将被定义一次。

我假设您正在尝试减少配置负担,因此涉及自定义侦听器和过滤器的策略将会被淘汰,但假设可以编写自定义侦听器和过滤器作为跟踪源的参数列表 - AFAIK,没有人试图创造一个。 MS,我相信希望会有第三方库扩展System.Diagnostics,目前UKADC和Essential.Diagnostics是最好的,我会使用他们的基类扩展MS已经提供的。

另一种可能性是在代码中以编程方式注册侦听器,这样可以完全避免配置并提供使用循环的机会。

我通过创建生成system.diagnostics部分的代码生成应用程序来解决这个问题 - 生成代码很容易阅读,结果配置很大且冗长和重复。