【发布时间】:2010-01-29 09:36:41
【问题描述】:
我们有许多主要应用程序使用的程序集(类库)。我想将一些程序集的日志路由到不同的目的地,但是我有一个 App.Config 文件,那么我该如何实现呢?我很确定在我不知道的 Logging Application Block 中有这样的设置。我还想根据我正在记录的每个程序集的优先级(是否应该记录它们)来路由日志。
【问题讨论】:
标签: c# logging enterprise-library
我们有许多主要应用程序使用的程序集(类库)。我想将一些程序集的日志路由到不同的目的地,但是我有一个 App.Config 文件,那么我该如何实现呢?我很确定在我不知道的 Logging Application Block 中有这样的设置。我还想根据我正在记录的每个程序集的优先级(是否应该记录它们)来路由日志。
【问题讨论】:
标签: c# logging enterprise-library
我找到了解决方案。我所做的是为每个程序集创建一个类别和一个跟踪侦听器。我使用了主可执行文件的 app.config 文件,其他程序集工作正常。
考虑到日志级别,它已经存在于 Logging Application Block 中,您可以使用 Category Sources 的 SourceLevels 属性或 Trace Listeners 的 Filter 属性来处理它。两者的区别在于范围。
来自模式和实践的论坛:
它们是相同的,唯一的区别在于它们的范围。 Category 中的 SourceLevels 属性适用于属于它的所有跟踪侦听器。跟踪侦听器中的 Filter 属性显然只适用于它自己。过滤首先在跟踪侦听器的类别级别上完成。如果 Category 更具限制性,则它不会继续调用跟踪侦听器。如果它允许所有类型的事件,则将日志条目传递给每个跟踪侦听器,每个跟踪侦听器都会根据其过滤器检测是否会记录该条目。
【讨论】: