Introducción

La semana pasada, me llamaron para analizar un problema que ocurría en una aplicación web que se ejecutaba en Azure App Service. Lo primero que hago entonces es ir a ver los Logs de la app en la parte de Logs Sequences (Secuencia de registros) pero me encuentro que no se esta registrando nada por más que en el codigo de la app si se usan Logs.

Por lo tanto, me puse a investigar para poder ver esos Logs en Azure y me encontre con 2 posibles soluciones que te vengo a enseñar en este mismo artículo: una solución del lado del código y otra solución del lado del Portal de Azure.

Situación de Ejemplo

Tenemos el siguiente código, el endpoint de ejemplo de Weather Forecast con la linea de LogInformación para registrar un Log de nivel Info.

Una vez publicado nuestro código en un Azure App Service, ejecutamos nuestro endpoint.

Pero para nuestra sorpresa en la ventana de Secuencia de Registro, no nos aparece aquel mensaje que establecimos en el código.

Solución del lado de Azure

Por si no sabian, existen extensiones que se pueden instalar en nuestros App Service. Las extensiones en Azure App Service son módulos adicionales que se pueden integrar con tus aplicaciones web para agregar funcionalidades específicas.

La extensión "Asp.NET Core Logging Integration" es una de las muchas extensiones disponibles para Azure App Service que está diseñada específicamente para aplicaciones web ASP.NET Core. Esta extensión permite integrar de manera más eficiente el registro (logging) de tu aplicación ASP.NET Core con los servicios de registro disponibles en Azure.

Por lo tanto, vamos a instalar esta misma extensión en nuestra aplicación para solucionar el problema desde el mismo portal de Azure.

En nuestro App Service en el menu, sección de Herramientas de Desarrollo y entramos en Extensiones.

Como no tenemos ninguna instalada, vamos a agregar una nueva extension y buscamos la que queremos instalar: Asp.NET Core Logging Integration

Una vez agregada e instalada por completo la vamos a visualizar en la tabla de extensiones de nuestra app.

Y por último, volvemos a la pantalla de Secuencia de Registro para confirmar que el prolema se soluciono, ahora si se estan mostrando los Logs de nuestra app en la consola.

Solución del lado del código

En el caso de no querer instalar una extension en el App Services porque es una aplicación ya productiva y no queremos tocar configuraciones que afecte a nuestra app. Pues entonces podemos solucionar nuestro problema desde el código.

Para esta solución solo sera necesario instalar el siguiente Nuget en nuestro proyecto de Asp .NET Core

NuGet Gallery | Microsoft.Extensions.Logging.AzureAppServices 8.0.4

Una vez instalado, agreamos la siguiente linea de código a nuestro Program.cs.

builder.Logging.AddAzureWebAppDiagnostics();

Nuevamente, solucionamos nuestro problema, ya que, al volver a publicar nuestra app con la modificación de código y vamos a la ventana de Secuencia de Registro, vamos a notar que ahora si se visualizan los Logs.

Conclusión

En conclusión, la gestión eficaz de los registros en una aplicación Asp.NET Core implementada en Azure App Service es fundamental para el seguimiento y solución de problemas. En este artículo vimos 2 formas distintas de poder visualizar nuestros Logs en el Portal de Azure. Ambos métodos son válidos; sin embargo, la selección dependerá de los requerimientos concretos del proyecto y del ambiente de producción.

Si encuentras útil este trabajo y deseas mostrar tu apoyo, siempre puedes invitarme a un buen café ☕.

Buy Me A Coffee