2017-04-26 123 views
1

我正在尝试使用现有的监听器注册DocumentDB跟踪。下面的代码片段正确地将一条消息跟踪到了我期望的侦听器,但不是由DocumentDB C#客户端生成的实际跟踪。我错过了什么吗?DocumentDB跟踪监听器

段从Global.asax中:

private static TraceSource DocDBSource; 
private static TraceListener ExistingListener = new .....; 

public void RegisterDocDBListener() { 
    DocDBSource = new TraceSource("DocDBTrace"); 
    DocDBSource.Switch.Level = SourceLevels.Information; 
    DocDBSource.Listeners.Add(ExistingListener); 
    DocDBSource.TraceInformation("DocDB tracing initialized"); 
} 
+0

我需要看看什么样的监听器是新的....或者如果你有东西混合,如果你也在App.Config或Web.Config中做同样的事情。这显示ConsoleTraceListener例如system.diagnostics – MatthewMartin

+0

对不起,链接没有粘贴 - https://msdn.microsoft.com/en-us/library/system.diagnostics.consoletracelistener(v=vs.110).aspx – MatthewMartin

+0

有你解决了这个问题,你需要进一步的支持吗? –

回答

0

根据你的描述,我已经检查从DocumentDB客户端库DefaultTrace为.NET如下:

enter image description here

对于客户端使用.NET DocumentDB客户端库进行日志记录,您可以按如下所示配置system.diagnostics配置,以按如下方式收集并保存documentdb日志消息到文本文件:

<system.diagnostics> 
    <sources> 
    <source name="DocDBTrace"> 
     <listeners> 
     <!--ConsoleTraceListener--> 
     <add name="configConsoleListener" type="System.Diagnostics.ConsoleTraceListener"/> 
     <!--TextWriterTraceListener--> 
     <add name="myListener" 
     type="System.Diagnostics.TextWriterTraceListener" 
     initializeData="TextWriterOutput.log" /> 
     </listeners> 
    </source> 
    </sources> 
    <switches> 
    <add name="ClientSwitch" value="Warning"/> 
    </switches> 
</system.diagnostics> 

注:默认日志级别的信息,你可以在ClientSwitch改变你的预期日志级别(关,错误信息,详细)。

结果

  • 控制台应用程序

enter image description here

  • Web应用程序

enter image description here