Debugging Azure诊断存储帐户是如何配置的?
我觉得用于存储Azure Diagnostics的帐户配置如下:Debugging Azure诊断存储帐户是如何配置的?,debugging,azure,cloud,azure-diagnostics,azure-configuration,Debugging,Azure,Cloud,Azure Diagnostics,Azure Configuration,我觉得用于存储Azure Diagnostics的帐户配置如下: (设置名称是固定的“Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString”字符串)。但是,我还找到了用于设置DiagnosticMonitor的代码片段(来自: var dm=DiagnosticMonitor.GetDefaultInitialConfiguration(); dm.Logs.ScheduledTransferPeriod=TimeSpan
(设置名称是固定的“Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString”字符串)。但是,我还找到了用于设置DiagnosticMonitor的代码片段(来自:
var dm=DiagnosticMonitor.GetDefaultInitialConfiguration();
dm.Logs.ScheduledTransferPeriod=TimeSpan.FromSeconds(5);
dm.Logs.ScheduledTransferLogLevelFilter=LogLevel.Verbose;
DiagnosticMonitor.Start(“DiagnosticConnectionString”,dm);
(设置名称是由开发人员选择的字符串)
这看起来令人困惑-我的印象是,这是相同的设置,但出于任何原因,不同的人配置不同
指定的存储帐户在哪里?为什么上面提到的两个代码段似乎用于相同的任务?我相信这是Azure开发时发生的事情……在早期,默认情况下没有启动诊断程序-因此,这就解释了旧的问题和答案
在最新的API(1.4)中,我认为您应该使用第一种方法并使用
GetDefaultInitialConfiguration…SetCurrentConfiguration
来指定要监视的内容。当DiagnosticsMonitor首次发布时(1.1或1.2 SDK,IIRC),它是从RoleEntryPoint(用户代码)启动的。这有一些缺点,即,如果您的RoleEntryPoint崩溃,它会使DM一起崩溃。当1.3 SDK发布时,它更改了设计并将DM作为后台启动任务启动。这允许DM在与您的代码不同的进程中运行,因此不再易受用户代码崩溃的影响“Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString”是诊断角色插件中定义的设置(请查看bin/Plugins目录)
如果您只导入诊断插件并设置此连接字符串,您将为某些默认内容启用诊断,但实际上不会将任何内容传输到您的存储帐户进行分析
因此,更完整的解决方案是:
*我更喜欢这种方法,因为我不喜欢在我的RoleEntryPoint中对其进行编码,而且我有可以监视和维护它的工具。我也很难做到这一点,所以当我最终让它工作时,请将下面的博文放在一起
有关Azure诊断的详细演练,您可以在PDC09上查看Matthew Kerners演示文稿“Windows Azure监控、日志记录和管理API”