我正在尝试将azure诊断数据存储在存储帐户中。 我尝试了以下代码:
public override bool OnStart()
{
// For information on handling configuration changes
// see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
// Get the default initial configuration for DiagnosticMonitor.
DiagnosticMonitorConfiguration diagnosticConfiguration = DiagnosticMonitor.GetDefaultInitialConfiguration();
// Filter the logs so that only error-level logs are transferred to persistent storage.
diagnosticConfiguration.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information;
// Schedule a transfer period of 30 minutes.
diagnosticConfiguration.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1.0);
// Specify a buffer quota of 1GB.
diagnosticConfiguration.Logs.BufferQuotaInMB = 900;
// Start the DiagnosticMonitor using the diagnosticConfig and our connection string.
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagnosticConfiguration);
Trace.TraceInformation("WebRole started");
return base.OnStart();
}
此代码与Microsoft在MSDN http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.diagnostics.diagnosticmonitorconfiguration.logs
上建议的相同我试图在没有运气的情况下评论出BufferQuotaInMB。我已经在本地环境和实时部署中使用新创建的应用程序尝试了这一点。事实证明,甚至没有创建WADLogsTable 我错过了什么?
注意:使用windowsEventLogs进行实时部署时,它正常工作。
答案 0 :(得分:1)
不确定有什么问题,您可以尝试在代码中使用Diagnostics.wadcfg作为配置选项吗?
很少有博客文章解释如何使用它:
如何使用Diagnostics.wadcfg配置Windows Azure诊断集合:http://www.davidaiken.com/2012/02/27/how-to-use-diagnostics-wadcfg-to-configure-windows-azure-diagnostics-collection/
通过diagnostics.wadcfg配置文件配置WAD:http://blogs.msdn.com/b/davidhardin/archive/2011/03/29/configuring-wad-via-the-diagnostics-wadcfg-config-file.aspx
如何使用Windows Azure诊断配置文件:http://msdn.microsoft.com/en-us/library/windowsazure/hh411551.aspx
值得一试,抱歉,我无法提供更多帮助......
答案 1 :(得分:0)
未创建WadLogTable,因为我们的问题是您没有将SetCurrentConfiguration()与GetDefaultInitialConfiguration()一起使用,以最终保存传输时间和日志级别。您必须使用以下API集:
GetDefaultInitialConfiguration()
SetCurrentConfiguration()
OR
GetCurrentConfiguration()
SetCurrentConfiguration()