只记录了一些跟踪消息

时间:2011-09-21 14:24:13

标签: azure azure-diagnostics

在我的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方法。

有什么想法吗?

1 个答案:

答案 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
  }