我正在托管一组工作者角色的WCF服务,我正在部署到Azure . 问题是标准跟踪日志记录未显示在Azure存储表中 .
在代码中 - 我正在使用
Trace.TraceInformation("Something")
在.csdef我有默认值
<Imports>
<Import moduleName="Diagnostics" />
</Imports>
在.csfg我有
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="CONNECTION_STRING_THAT_WORKS_FOR_OTHER_ROLE" />
</ConfigurationSettings>
在wadcfg中,我得到了
<Logs bufferQuotaInMB="1024" scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" />
此设置适用于我正在部署的辅助角色,它可以很好地记录在WADLogsTable中 . 但这个不是 . 有什么指针吗?
2 回答
我们稍后通过修改Azure项目而不是基础webrole解决了这个问题:
1 - 将webrole.cs文件添加到项目中,其中包含以下内容:
2 - 这是同一个项目的app.config:
这为我们解决了
你是如何设置DiagnosticMonitorTraceListener的,以及你在哪个进程中进行Trace.TraceInformation调用?我通常在app.config中看到DiagnosticMonitorTraceListener中的这个,但Trace.TraceInformation调用正在其他一些进程中发生 . 您必须在.config文件中(或通过TraceListeners.Add代码中)设置DiagnosticMonitorTraceListener,以用于进行Trace.TraceInformation调用的进程 . 如果这不能解决问题,那么我通常会采取三种方法来解决此问题:
编写Trace语句的代码有问题吗? RDP到Azure VM并设置一个简单的TextWriterTraceListener来写入文件 - http://msdn.microsoft.com/en-us/library/sk36c28t(v=vs.110).aspx .
Windows Azure诊断代理未捕获跟踪是否存在问题(即我上面描述的有关未注册DiagnosticMonitorTraceListener的问题)?使用位于http://blogs.msdn.com/b/kwill/archive/2013/08/26/azuretools-the-diagnostic-utility-used-by-the-windows-azure-developer-support-team.aspx的AzureTools中的table2csv工具查看WADLogs TSF文件 .
是否收集了跟踪的问题,但是没有上传到存储?使用相同的table2csv工具,但查看MAEvent表 . 这些表记录了诊断数据到存储的传输 .