在我的Azure应用程序中,我有Trace.WriteLine()调用来跟踪应用程序正在做什么。
让我感到困惑的是,其中一些使它成为日志,而其他人则没有。例如,我的工作者角色OnStart()方法的代码片段:
Trace.WriteLine("WorkerRole: creating storage tables", "Information");
CloudStorageAccount account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudTableClient tableClient = account.CreateCloudTableClient();
if (tableClient.CreateTableIfNotExist("Devices")) {
Trace.WriteLine("WorkerRole.OnStart: Devices table created", "Information");
}else{
Trace.WriteLine("WorkerRole.OnStart: Devices table not created. Already exists?", "Information");
}
记录第一个Trace。记录的if语句中的Trace调用都没有记录。然后记录随后执行的方法中的Trace方法。
有什么想法吗?
答案 0 :(得分:0)
在您的角色的OnStart方法中,您是否正在调整DiagnosticMonitorConfiguration?默认情况下,跟踪日志不会转移到存储,除非您告诉它:
public override bool OnStart()
{
#region SetupDiagnostics Set up diagnostics
DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultIniialConfiguration();
TimeSpan tsOneMinute = TimeSpan.FromMinutes(1);
dmc.Logs.ScheduledTransferPeriod = tsOneMinute; // Transfer logs every minute
dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; // Tansfer verbose, critical, etc. logs
// Start up the diagnostic manager with the given configuration
DiagnosticMonitor.Start("DiagnosticsConnectionString", dmc);
#endregion
}