2015-03-12 5 views
5

Ich schreibe einen neuen Cloud-Dienst in .NET mit Azure SDK 2.5. Ich bin mir bewusst, dass es einige signifikante Änderungen an der Diagnose with the 2.5 SDK rekesae gab.Azure SDK, Trace.Information und WADLogsTable

Wo bekomme ich widersprüchliche Informationen ist, ob ich noch Azure Diagnostics Trace verwenden können. * Ausgabe auf WADLogsTable in Azure Table Storage?

Ich bin mir bewusst, dass ich ETW als Alternative verwenden kann, aber das ist jetzt, was ich verlange.

Nach Artikel this Artikel kann ich noch Trace verwenden, um meine Protokolle mit Azure Diagnostics 1.3 zu erfassen - die ich verstehe, wurde mit SDK 2.5 geliefert.

Leider kann ich es nicht zur Arbeit bringen.

Die app.config meiner Arbeiter Rolle wie folgt aussieht:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<system.diagnostics> 
    <trace> 
     <listeners> 
      <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
       name="AzureDiagnostics"> 
       <filter type="" /> 
      </add> 
     </listeners> 
    </trace> 
</system.diagnostics> 
</configuration> 

Während des gesamten Code in meine Arbeiter Rolle ich Code Tracing haben, die wie folgt aussieht:

Trace.TraceInformation("Something happened"); 

Meine öffentlichen diagnostics.wadcfg Datei sieht so aus:

<?xml version="1.0" encoding="utf-8"?> 
<PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
<WadCfg> 
    <DiagnosticMonitorConfiguration overallQuotaInMB="4096"> 
    <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Information" /> 
    </DiagnosticMonitorConfiguration> 
</WadCfg> 
<StorageAccount>mystorageAccount</StorageAccount> 
</PublicConfig> 

Ich habe diese Datei verwendet, um den Diagnosedienst zu konfigurieren Die Erweiterung mit dem PowerShell-Befehl:

Set-AzureServiceDiagnosticsExtension 

Kein WADLogsTable wird jemals erstellt. Wenn ich andere Diagnosedienste wie Perf Counter aktiviere, werden die relevanten Tabellen (WADPerformanceCountersTable) erstellt und ausgefüllt.

Ich verwende:

  • Visual Studio 2012
  • .NET 4.5.1
  • Azure Powershell (neueste v von Web Platform Installer)
  • Azure SDK 2,5

Kann mich jemand aus meinem Elend befreien? Vielen Dank

+0

Haben Sie Trace.TraceError-Anweisungen mit der Standardkonfiguration für planedTransferLogLevelFilter = "Error" ausprobiert? – schadr

+0

Ich habe nicht, aber was bringt dich dazu zu denken, dass dies irgendetwas verändern würde? –

+0

Haben Sie die Trace.Trace * -Stilprotokollierung erfolgreich mit der neuen SDK-Version verwendet? Können Sie bestätigen, dass es funktionieren sollte? –

Antwort

0

Ich habe gerade eine Standardworkerrolle, die Trace-Protokolle erzeugt, und ich bemerkte einen Unterschied in der öffentlichen Config

<?xml version="1.0" encoding="utf-8"?> 
<PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
<WadCfg> 
    <DiagnosticMonitorConfiguration overallQuotaInMB="4096"> 
    <WindowsEventLog scheduledTransferPeriod="PT1M"> 
     <DataSource name="Application!*" /> 
    </WindowsEventLog> 
    <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Information" /> 
    </DiagnosticMonitorConfiguration> 
</WadCfg> 
<StorageAccount>mystorageAccount</StorageAccount> 
</PublicConfig> 
2

Wie bereitstellen Sie? Im gleichen Setup (VS2012, Azure 2.5 SDK) sah ich nur, dass WADLogsTable mit dem Visual Studio-Assistenten "Veröffentlichen" erstellt wurde, der die Diagnoseerweiterung für Sie konfiguriert. Siehe:

https://msdn.microsoft.com/en-us/library/azure/dn873976.aspx

Diagnose Konfiguration muss separat nach Einsatz angewendet werden - Da Azure SDK Version 2.5 verwendet die Erweiterung Modell, die Diagnoseerweiterung und Konfiguration sind nicht mehr Teil des Bereitstellungspakets und muss sein wird nach der Bereitstellung separat angewendet.Visual Studio wird die Erweiterung und Konfiguration für Sie gilt, wenn Sie die Veröffentlichen-Assistenten verwenden, um Ihre Anwendung [...]

ich nicht in der Lage zu implementieren wurde die Powershell-Cmdlets an der Arbeit (nicht gesetzt viel Aufwand, ehrlich gesagt, aber als Workaround, als ich mit dem VS "Publish" -Assistenten eingesetzt habe, wurde die WADLogsTable erstellt und ich konnte meine Logs sehen. Dies ist nicht passiert, als ich über das Azure-Portal gepackt und hochgeladen habe.

In absehbarer Zukunft könnte es so sein; Die Situation scheint sich im 2.6 SDK nicht geändert zu haben (obwohl sie eine Menge Ärger mit der Diagnose in 2.5 behoben haben): https://msdn.microsoft.com/en-us/library/azure/dn186185.aspx

+0

Wir stellen von dort Kommandozeile mit den PowerShell CmdLets. –

+0

@ user1454265 dann wie erreichen wir, wenn wir mit Azure-Management-Portal und nicht die VS veröffentlichen möchten? –

Verwandte Themen