我正在使用Azure sdk 1.4,正在尝试在我的web角色上设置诊断。下面是我在webrole的onstart方法中所做的工作:
string wadConnectionString = "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString";
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(wadConnectionString));
RoleInstanceDiagnosticManager roleInstanceDiagnosticManager = storageAccount.CreateRoleInstanceDiagnosticManager(RoleEnvironment.DeploymentId,
RoleEnvironment.CurrentRoleInstance.Role.Name, RoleEnvironment.CurrentRoleInstance.Id);
DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();
int loggingInterval = Int32.Parse(RoleEnvironment.GetConfigurationSettingValue("loggingInterval"));
config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(loggingInterval);
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;
roleInstanceDiagnosticManager.SetCurrentConfiguration(config);
// For information on handling configuration changes
// see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
RoleEnvironment.Changing += RoleEnvironmentChanging;现在,当我在我的dev机器上的云模拟器上运行它时-它工作得很好,我可以在WADLogs表中看到日志。我已经将我的cscfg文件中的"Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString“值设置为"UseDevelopmentStorage=true”。当我将我的webrole发布到azure云时,我设置了这个配置值,以正确地指向正确的存储帐户:
然而,我的webrole日志从未出现在azure云上。当我在模拟器上运行云应用程序并将诊断连接字符串指向实时云存储时,即使这样,我也能够获得诊断信息。有人能告诉我发生了什么事吗?
Kapil
发布于 2011-11-08 12:50:50
这听起来有点奇怪。我想指出在模拟器控制台( devFabric)中查看日志和将日志存储在存储帐户中之间的区别。如果当您将服务指向云存储帐户,但在本地模拟器中本地运行服务时,您能够看到存储帐户中存储的日志,那么我猜您在发布服务后等待的时间还不够长。将日志从您的角色实例推送到存储帐户的过程有时会花费比预期更长的时间,我建议您在查询表存储之前等待更长时间
https://stackoverflow.com/questions/8035856
复制相似问题