Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用来自特定程序集的调试消息_C#_Logging_Nlog_Avalondock - Fatal编程技术网

C# 禁用来自特定程序集的调试消息

C# 禁用来自特定程序集的调试消息,c#,logging,nlog,avalondock,C#,Logging,Nlog,Avalondock,我有一个带有NLog的C#应用程序,用于记录日志,它还可以记录发送到System.Diagnostics的跟踪/调试系统的消息。这在应用程序的配置文件中完成,如下所示: <system.diagnostics> <trace autoflush="true" indentsize="2"> <listeners> <add name="nLogListener" /> </listeners> <

我有一个带有NLog的C#应用程序,用于记录日志,它还可以记录发送到System.Diagnostics的跟踪/调试系统的消息。这在应用程序的配置文件中完成,如下所示:

<system.diagnostics>
  <trace autoflush="true" indentsize="2">
    <listeners>
      <add name="nLogListener" />
    </listeners>
  </trace>

  <sources>
    <!--bunch of extra sources here-->
  </sources>

  <sharedListeners>
    <add name="nLogListener" type="NLog.NLogTraceListener, NLog"/>
  </sharedListeners>
</system.diagnostics>
我希望排除它们,同时仍保留发送到跟踪的所有其他消息。我可以向NLog添加一个过滤器,以使用通配符等排除所有这些过滤器,但我不希望这样做,因为:

  • 这需要我找出阿瓦朗多克能说出的所有可能的信息
  • 如果AvalonDock发生变化,我必须更新过滤器
  • 也存在排除非AvalonDock消息的风险

是否有其他方法处理此问题(无需重新编译AvalonDock的源代码)?我能否以某种方式排除来自特定程序集的所有消息?或者可以在它们前面加上一个已知的字符串,这样我就可以根据单个字符串过滤消息了?

中有一些有趣的注释。在类的“备注”部分有一些有趣的信息。@确实很有趣,但不幸的是,AvalonDock没有使用
TraceSource
s,而是使用普通的
Debug.WriteLine
,所以我认为这些信息不适用于这个案子?
NLog.LoggerImpl.Write | Attach() 
NLog.LoggerImpl.Write | DockingManager.OnPreviewGotKeyboardFocus(System.Windows.Controls.Canvas) 
NLog.LoggerImpl.Write | SetFocusOnLastElement(focused=True, model=Xceed.Wpf.AvalonDock.Layout.LayoutAnchorable, element=System.Windows.Controls.Canvas) 
NLog.LoggerImpl.Write | DockingManager.OnPreviewLostKeyboardFocus(System.Windows.Controls.Canvas)