2015-03-12 12 views
5

Sto scrivendo un nuovo servizio cloud in .NET utilizzando Azure SDK 2.5. Sono consapevole che ci sono stati alcuni cambiamenti significativi nella diagnostica with the 2.5 SDK rekesae.Azure SDK, Trace.Information e WADLogsTable

Dove trovo informazioni contrastanti è se posso ancora utilizzare Azure Diagnostics per acquisire Trace. * Output su WADLogsTable in Archiviazione tabelle di Azure?

Sono consapevole che posso utilizzare l'ETW come alternativa, ma ora è quello che sto chiedendo.

Secondo l'articolo this, posso ancora utilizzare Trace per acquisire i miei registri con Azure Diagnostics 1.3, che ho ricevuto con SDK 2.5.

Purtroppo non riesco a farlo funzionare.

L'app.config del mio ruolo operaio si presenta come:

<?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> 

In tutto il codice nel mio ruolo di lavoro ho tracciare il codice che assomiglia a questo:

Trace.TraceInformation("Something happened"); 

mio diagnostics.wadcfg pubblico file è simile a:

<?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> 

Ho usato questo file per configurare il servizio di diagnostica e estensione utilizzando il comando PowerShell:

Set-AzureServiceDiagnosticsExtension 

Nessuna WADLogsTable viene mai creata. Se si abilitano altri servizi di diagnostica come Perf Counter, le tabelle rilevanti (WADPerformanceCountersTable) vengono create e popolate.

sto usando:

  • Visual Studio 2012
  • .NET 4.5.1
  • Azure PowerShell (ultima v dal Web Platform Installer)
  • Azure SDK 2,5

Qualcuno può farmi uscire dalla mia infelicità? Molte grazie

+0

Hai provato le istruzioni Trace.TraceError con la configurazione predefinita per scheduledTransferLogLevelFilter = "Errore"? – schadr

+0

Non l'ho fatto, ma cosa ti fa pensare che questo cambierebbe qualcosa? –

+0

Hai utilizzato la registrazione di Trace.Trace * con successo con la nuova versione dell'SDK? Puoi confermare che dovrebbe funzionare? –

risposta

0

Ho appena creato un ruolo di lavoro di default che sta producendo registri di traccia e ho notato una differenza nella configurazione pubblico

<?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

Come stai implementando? Nella stessa configurazione (VS2012, Azure 2.5 SDK), ho visto solo la WADLogsTable creata utilizzando la procedura guidata "Pubblica" di Visual Studio, che apparentemente configura per te l'estensione di diagnostica. Vedere:

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

Diagnostica configurazione deve essere applicata separatamente dopo la distribuzione - Perché Azure SDK versione 2.5 utilizza il modello di estensione, l'estensione e la configurazione diagnostica non fanno più parte del pacchetto di distribuzione e devono essere applicato separatamente dopo la distribuzione.Visual Studio applicherà l'estensione e la configurazione per voi quando si utilizza la procedura guidata Pubblica per distribuire l'applicazione [...]

non ero in grado di ottenere i cmdlet PowerShell per lavorare (non ha messo molto impegno in questo, onestamente) ma come soluzione alternativa, quando ho implementato la procedura guidata "Pubblica" di VS, è stata creata la WADLogsTable e ho potuto vedere scorrere i miei registri. Ciò non è accaduto quando sono stato impacchettato e caricato tramite il portale di Azure.

Può essere in questo modo per il prossimo futuro; la situazione non sembra essere cambiata nell'SDK 2.6 (sebbene abbiano risolto molti problemi con la diagnostica 2.5): https://msdn.microsoft.com/en-us/library/azure/dn186185.aspx

+0

Distribuiamo da lì la riga di comando utilizzando i CmdLets di PowerShell. –

+0

@ user1454265 quindi come otteniamo se vogliamo pubblicare usando il portale di gestione Azure e non il VS? –

Problemi correlati