【发布时间】:2015-05-14 02:32:27
【问题描述】:
我正在使用 Azure SDK 2.5 在 .NET 中编写一个新的云服务。 我知道with the 2.5 SDK rekesae 的诊断发生了一些重大变化。
我得到相互冲突的信息是我是否仍然可以使用 Azure 诊断来捕获 Trace.* 输出到 Azure 表存储中的 WADLogsTable?
我知道我可以使用 ETW 作为替代方案,但这就是我现在所要求的。
根据this 文章,我仍然可以使用 Trace 来通过 Azure 诊断 1.3 捕获我的日志 - 据我所知,它已随 SDK 2.5 提供。
很遗憾,我无法让它工作。
我的 worker 角色的 app.config 如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
</system.diagnostics>
</configuration>
在我的工人角色的整个代码中,我的跟踪代码如下所示:
Trace.TraceInformation("Something happened");
我的公共 diagnostics.wadcfg 文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<WadCfg>
<DiagnosticMonitorConfiguration overallQuotaInMB="4096">
<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Information" />
</DiagnosticMonitorConfiguration>
</WadCfg>
<StorageAccount>mystorageAccount</StorageAccount>
</PublicConfig>
我已使用此文件通过 PowerShell 命令配置诊断服务扩展:
Set-AzureServiceDiagnosticsExtension
从未创建过 WADLogsTable。 如果我启用其他诊断服务,例如 Perf Counter,则会创建并填充相关表 (WADPerformanceCountersTable)。
我正在使用:
- Visual Studio 2012
- .NET 4.5.1
- Azure Powershell(来自 Web 平台安装程序的最新版本)
- Azure SDK 2.5
谁能让我摆脱痛苦? 非常感谢
【问题讨论】:
-
您是否尝试过使用 scheduleTransferLogLevelFilter="Error" 的默认配置的 Trace.TraceError 语句?
-
我没有,但是是什么让你认为这会改变什么?
-
您是否在新的 SDK 版本中成功使用了 Trace.Trace* 样式的日志记录?你能确认它应该工作吗?
-
我认为您可能缺少
-
你解决过这个问题吗?我有类似的问题
标签: azure azure-sdk-.net azure-diagnostics