3

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

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

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

那么,有没有办法说:对于所有库中的所有源,使用这个开关值、这个过滤器和这个监听器。

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

这可以做到吗?

4

1 回答 1

4

使用 shareListener 标签可以最大程度地减轻疼痛:http: //msdn.microsoft.com/en-us/library/ms229501.aspx

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

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

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

我通过创建一个生成 system.diagnostics 部分的代码生成应用程序来解决这个问题——生成的代码易于阅读,生成的配置大而冗长且重复。

于 2013-06-27T12:29:57.467 回答