Trace.WriteLine () Only messages Saved to OnStart () for Azure WorkerRole

I am developing Azure WorkerRole (). In the Compute Emulator console, I see all Trace.WriteLine () messages, but only those that are generated in OnStart () seem to be stored in the repository.

My ServiceConfiguration.Local.csfg has:

<Role name="MyWorkerRole"> <Instances count="1" /> <ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" /> </ConfigurationSettings> </Role> 

My WorkerRole.cs has:

 public override void Run() { Trace.WriteLine("Called from Run(), where does this trace go???", "Information"); // ... SNIP ... } public override bool OnStart() { // Set the maximum number of concurrent connections ServicePointManager.DefaultConnectionLimit = 12; DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultInitialConfiguration(); dmc.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; DiagnosticMonitor.Start("DiagnosticsConnectionString", dmc); Trace.WriteLine("This trace appears in WADLogsTable", "Information"); return base.OnStart(); } 
+4
source share
1 answer

It looks right - I wonder why you don’t see anything. I wonder why Start ignores your configuration changes. Here is the code I used that will send trace logs (I know this works):

  private static void EnableDiagnostics(int transferTime) { 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(); if (config == null) { config = DiagnosticMonitor.GetDefaultInitialConfiguration(); } config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(transferTime); config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined; CrashDumps.EnableCollection(true); roleInstanceDiagnosticManager.SetCurrentConfiguration(config); } 
+3
source

All Articles