2012-05-30 9 views
5

Quando eseguo localmente il mio ruolo di lavoro, posso aprire l'applicazione Emulatore di calcolo di Windows Azure e controllare lo standard output e l'errore del mio processo di lavoro.Azure: dove trovo i log del mio ruolo quando si utilizza Desktop remoto?

Quando eseguo il desktop remoto nell'istanza di Azure, non so dove ottenere le stesse informazioni. Dove trovo l'output standard e l'errore?

+0

Si sta utilizzando System.Diagnostics.Trace per scrivere il messaggio nel ruolo di lavoratore? – AvkashChauhan

+0

No, sto eseguendo un ruolo di lavoratore con un 'ProgramEntryPoint' non- .NET. Tuttavia, posso vedere che non è chiaro dalla mia domanda --- aprirò una nuova domanda per affrontarlo. –

+0

Vedere [questa domanda] (http://stackoverflow.com/questions/10827388/) se si utilizza 'ProgramEntryPoint' per eseguire un'app non.NET in un ruolo di Azure Worker. –

risposta

0

I messaggi di traccia non vengono archiviati in nessuna finestra di Windows Azure, se invece si configura correttamente Diagnostics di Azure, tali messaggi vengono inviati a Windows Azure Table Storage (tabella WADLogsTable) da lì è possibile recuperarli.

Se volete sapere come abilitare Azure diagnostica per Tracce visitare il link qui sotto e cercare Windows Azure diagnostica Dimostrazione esempio di codice:

http://msdn.microsoft.com/en-us/library/windowsazure/hh411529.aspx

Si può imparare dettagli su Azure diagnostica here.

3

Se si desidera visualizzare l'output standard e l'errore del processo di lavoro in una distribuzione effettiva, è necessario eseguire alcune configurazioni aggiuntive. Questi dati devono essere memorizzati in una memoria persistente.

Il primo passaggio consiste nell'abilitare Diagnostica nella finestra di configurazione di WorkerRole. Qui deve essere specificato un account di archiviazione.

Il passaggio successivo è aggiungere codice aggiuntivo al metodo OnStart() del proprio WorkerRole. Qui è possibile non solo configurare l'output standard e l'errore, ma anche ascoltare gli eventi di Windows e le informazioni diagnostiche fornite nel seguente esempio di codice.

public override bool OnStart() 
{ 
    DiagnosticMonitorConfiguration diagConfig = 
     DiagnosticMonitor.GetDefaultInitialConfiguration(); 

    // Windows event logs 
    diagConfig.WindowsEventLog.DataSources.Add("System!*"); 
    diagConfig.WindowsEventLog.DataSources.Add("Application!*"); 
    diagConfig.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Error; 
    diagConfig.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(5); 

    // Azure application logs 
    diagConfig.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; 
    diagConfig.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(5); 

    // Performance counters 
    diagConfig.PerformanceCounters.DataSources.Add(
     new PerformanceCounterConfiguration() 
    { 
     SampleRate = TimeSpan.FromSeconds(5), 
     CounterSpecifier = @"\Processor(*)\% Processor Time" 
    }); 
    diagConfig.PerformanceCounters.ScheduledTransferPeriod = 
     TimeSpan.FromMinutes(5); 
    DiagnosticMonitor.Start(
     "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagConfig); 
    return base.OnStart(); 
} 

Dopo queste impostazioni, i dati diagnostici saranno visibili nella memoria di Azure Table configurata. Puoi facilmente scrivere strumenti per visualizzare i tuoi dati qui, ma ci sono anche alcuni strumenti commerciali che hanno funzionalità incorporate per questo. Ad esempio Cerebrata Diagnostics Manager.

Se per qualche motivo non si desidera utilizzare Archiviazione di Azure per l'archiviazione dei file di registro, è possibile implementare un listener di traccia personalizzato che può scrivere registri in qualsiasi altro punto. Here è una descrizione su come farlo. È sufficiente aprire una porta http e trasferirli sul proprio server.

Problemi correlati