2012-05-30 17 views
5

Cuando ejecuto mi función de trabajador localmente, puedo abrir la aplicación del emulador de cálculo de Windows Azure y ver el error y la salida estándar de mi proceso de trabajo.Azure: ¿Dónde puedo encontrar los registros de mi función cuando uso Remote Desktop?

Cuando remuevo el escritorio en mi instancia de Azure, no sé dónde obtener esa misma información. ¿Dónde encuentro la salida estándar y el error?

+0

¿Está utilizando System.Diagnostics.Trace para escribir un mensaje en su rol de trabajador? – AvkashChauhan

+0

No, estoy ejecutando una función de trabajador con un 'ProgramEntryPoint' no de .NET. Sin embargo, puedo ver que eso no está claro en mi pregunta --- Abriré una nueva pregunta para abordar eso. –

+0

Consulte [esta pregunta] (http://stackoverflow.com/questions/10827388/) si está utilizando 'ProgramEntryPoint' para ejecutar una aplicación que no es de .NET en una función de trabajador de Azure. –

Respuesta

0

El mensaje de seguimiento no se almacena en ningún lugar de Window Azure si configura Azure Diagnostics correctamente esos mensajes se envían a Windows Azure Table Storage (WADLogsTable Table) desde allí puede obtenerlos.

Si usted quiere saber cómo habilitar Azure Diagnóstico de huellas visite el enlace de abajo y busque Windows Azure Diagnóstico Demostración ejemplo de código:

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

Usted puede aprender más detalles sobre Azure Diagnóstico here.

3

Si desea ver su salida estándar y el error de su proceso de trabajo en una implementación real, entonces tendrá que hacer alguna configuración adicional. Esta información debe almacenarse en un almacenamiento persistente.

El primer paso es habilitar Diagnósticos en la ventana de configuración de su WorkerRole. Aquí se debe especificar una cuenta de almacenamiento.

El siguiente paso es agregar código adicional al método OnStart() de su WorkerRole. Aquí no solo puede configurar la salida estándar y el error, sino que también puede escuchar eventos de Windows e información de diagnóstico como se proporciona en el siguiente ejemplo de código.

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(); 
} 

Después de estos ajustes, sus datos de diagnóstico serán visibles en el almacenamiento configurado de Azure Table. Puede escribir fácilmente herramientas para visualizar sus datos aquí, pero también hay algunas herramientas comerciales que tienen funcionalidad incorporada para esto. Por ejemplo, Cerebrata Diagnostics Manager.

Si por algún motivo no desea utilizar Azure Storage para almacenar archivos de registro, puede implementar un escucha de rastreo personalizado que puede escribir registros en cualquier otro lugar. Here es una descripción sobre cómo hacerlo. Simplemente puede abrir un puerto http y transferirlos a su propio servidor.

Cuestiones relacionadas