2013-02-12 79 views
2

我有一個Web角色(2個實例)和輔助角色(2個實例)兩個角色使用以下配置天青WadLogsTable包含重複的條目

 DiagnosticMonitorTraceListener tmpListener = new DiagnosticMonitorTraceListener(); 
     System.Diagnostics.Trace.Listeners.Add(tmpListener); 
     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 = roleInstanceDiagnosticManager.GetCurrentConfiguration(); 
     config.Logs.BufferQuotaInMB = 500; 
     config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1D); 
     config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information; 

     roleInstanceDiagnosticManager.SetCurrentConfiguration(config); 

當我添加一些消息我注意到工作者角色日誌同樣的條目兩次。我必須改變一些東西嗎?

+0

難道是因爲診斷的配置是相同的兩個實例,每個實例會寫相同的消息。你能否檢查同一個實例是否正在寫重複消息? – 2013-02-12 10:29:37

+0

每個實例都將其自己的消息寫入兩次 – 2013-02-12 10:35:21

+0

您是否在添加另一個實例之前檢查Trace.Listeners集合中是否已有AzureDiagnosticMonitor? – Nico 2013-02-12 12:56:16

回答

3

感謝您的通知,我會在這裏glady我重新發布提示,再次回答:

在Visual Studio中的一些項目模板已經註冊AzureDiagnosticMonitorTraceListener的一個實例的Trace.Listeners收藏。您可能要檢查是否有這樣添加一個新的人之前已經註冊的偵聽:

if (Trace.Listeners.OfType<AzureDiagnosticMonitorTraceListener>().Count() == 0) 
{ 
    Trace.Listeners.Add(new AzureDiagnosticMonitorTraceListener()); 
}