【问题标题】:Trace Listeners - How to Suppress log messages from given Namespace?跟踪侦听器 - 如何抑制来自给定命名空间的日志消息?
【发布时间】:2015-11-18 11:13:14
【问题描述】:

我正在开发一个使用自定义跟踪侦听器的项目:

<system.diagnostics>
<trace>
  <listeners>
    <add name="CustomTraceListener" type="CustomTraceListener, CustomTraceListener" />
  </listeners>
</trace>
</system.diagnostics>

而且我有一个记录太多的类:

namespace MyApp.SuperChatty{
   //I log too much
   public class HeavyLogger{
   }
}

如何禁止来自MyApp.SuperChatty.HeavyLoggerVerbose 消息?

当我使用 log4net 时,我可以为给定的类或命名空间 (log4net: Configure to ignore messages from a specific class) 创建一个特定的记录器,那么如何使用 Tracing 来做到这一点?

【问题讨论】:

    标签: c# .net logging log4net trace


    【解决方案1】:

    我能想到的最佳解决方案是创建一个自定义TraceFilter (TraceFilter at MSDN)。我自己从未这样做过,但我希望您可以向InitializeData 提供命名空间/部分命名空间,然后确定是否从ShouldTrace 方法中的源进行跟踪。

    【讨论】:

    • 所以只通过配置是不可能的?
    • 好吧,您将实现该类,然后在配置中对其进行配置。 (但就像我说的,我自己并没有真正做到这一点,所以我的回答只是理论上的。)
    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2017-09-24
    • 1970-01-01
    相关资源
    最近更新 更多