Azure SDK登录1.7 SDK

时间:2012-06-23 05:55:56

标签: logging azure

将我的azure项目升级到SDK版本1.7后,日志已停止转移到存储。我一直在看这几个小时,看不出有什么变化(差异也没有帮助)。

我想我需要一套新眼睛来帮助定位问题。你觉得这里有什么不对吗?设置是否在1.7SDK中发生了变化?

的Web.config

  <system.diagnostics xdt:Transform="Insert">
    <trace>
      <listeners>
        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
          <filter type="" />
        </add>
      </listeners>
    </trace>
  </system.diagnostics>

服务定义

<Imports>
  <Import moduleName="Diagnostics" />
</Imports>

CloudConfig

<ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
               value="DefaultEndpointsProtocol=https;AccountName=[account];AccountKey=[key]" />
</ConfigurationSettings>

的OnStart

var config = DiagnosticMonitor.GetDefaultInitialConfiguration();

//event log
config.WindowsEventLog.DataSources.Add("System!*");
config.WindowsEventLog.DataSources.Add("Application!*");
config.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(5);
config.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Warning;


config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(5);
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information;
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config);

return base.OnStart();

2 个答案:

答案 0 :(得分:8)

问题在于您的web.config,您需要将程序集版本更新为1.7.0.0:

Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener,Microsoft.WindowsAzure.Diagnostics,Version = 1.7.0.0 ,Culture = neutral,PublicKeyToken = 31bf3856ad364e35

答案 1 :(得分:0)

你需要关注@Sandrino建议,我也会看到一些代码问题。您尚未将GetCaultConfiguration()与GetDefaultInitialConfiguration()一起使用,以最终保存传输时间和日志级别。您必须使用以下API集:

GetDefaultInitialConfiguration() 
SetCurrentConfiguration() 

OR

GetCurrentConfiguration()
SetCurrentConfiguration()

如果您开始在应用程序中收集跟踪消息,这可能会导致problem,这样可以更好地完成此代码。