microsoft management azure-webjobs

management - ¿Cómo escribo en los registros en Azure WebJobs desde una aplicación de consola C#?



panel azure login (2)

Estoy probando Azure Webjobs. Escribí una aplicación de consola que sondea una base de datos SQL para un nuevo trabajo y lo procesa. No estoy usando el SDK de WebJobs porque solo es compatible con Azure Storage.

Cargué el trabajo, se ejecuta y luego falla con una excepción que dice que no se pudo conectar a la instancia de la Base de datos SQL. Me pregunto qué cadena de conexión se está utilizando; está obteniendo la cadena de conexión del sitio web de Azure. Los registros me dan esto:

[03/14/2014 22:24:25 > 512206: SYS INFO] Status changed to Running [03/14/2014 22:24:40 > 512206: ERR ] [03/14/2014 22:24:40 > 512206: ERR ] Unhandled Exception: System.AggregateException: One or more errors occurred. ---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Me gustaría escribir datos en estos registros (como cuál es la cadena de conexión que se está utilizando). Intenté Console.WriteLine, Debug.WriteLine, Console.Error.WriteLine. Ninguno de ellos aparece en el registro de mi WebJob.

Aparentemente pude obtener la información con solo levantar una excepción con el texto del mensaje que muestra lo que quiero, ¡pero debe haber una manera mejor! ¿Cómo escribo líneas SYS INFO y líneas ERR en el registro?


Pude obtener Console.WriteLine () para dejar mensajes en mi registro de trabajo web. La siguiente consola se ejecuta y deja mensajes de registro.

class Program { static void Main(string[] args) { while (true) { DoStuff(); Thread.Sleep(10000); } } public static void DoStuff() { Console.WriteLine("do stuff"); } }

Esto es lo que muestra mi archivo de registro:

[03/15/2014 04:05:28 > cf6d00: SYS INFO] Run script ''HelloWebJobConsoleApplication.exe'' with script host - ''WindowsScriptHost'' [03/15/2014 04:05:28 > cf6d00: SYS INFO] Status changed to Running [03/15/2014 04:05:28 > cf6d00: INFO] do stuff [03/15/2014 04:05:38 > cf6d00: INFO] do stuff [03/15/2014 04:05:48 > cf6d00: INFO] do stuff [03/15/2014 04:05:58 > cf6d00: INFO] do stuff


Respecto a los registros:

Para WebJobs continuos : Console.Out y Console.Error se enrutan a los "registros de la aplicación", se mostrarán como archivo, blob o almacenamiento de tabla dependiendo de la configuración de los registros de la aplicación (similar a su sitio web).

Además, las primeras 100 líneas en cada invocación también irán al archivo de registro de WebJob (para facilitar el esfuerzo de depuración cuando WebJob falla al inicio) accesible mediante Azure Portal (pero también guardado en el sistema de archivos de su sitio en data / jobs / continuous / jobName )

Para WebJobs activados / programados : Console.Out / Console.Error se enrutan al archivo de registro de ejecución específico de WebJobs, también accesible mediante Azure Portal y almacenado en data / jobs / triggered / jobName / runId.

Console.Out se trata (marca) como INFO y Console.Error como ERROR.

En cuanto a las cadenas de conexión:

Puede acceder a sus cadenas de conexión de la misma manera que en su sitio web, utilizando la clase ConfigurationManager, para WebJobs no escritos en .NET puede encontrar estas cadenas de conexión (y configuraciones de aplicaciones) como variables de entorno (todas iguales a su sitio web).