0% encontró este documento útil (0 votos)
10 vistas6 páginas

Logging en .NET y ASP.NET Core

.NET proporciona una API de registro que admite múltiples proveedores de registro internos y de terceros. Los registros se crean usando un objeto ILogger asociado con una categoría, y se pueden configurar los niveles de registro y proveedores en appsettings.json. Los registros capturan información sobre eventos y errores con diferentes niveles de severidad como información, advertencia o crítico.

Cargado por

Pablo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas6 páginas

Logging en .NET y ASP.NET Core

.NET proporciona una API de registro que admite múltiples proveedores de registro internos y de terceros. Los registros se crean usando un objeto ILogger asociado con una categoría, y se pueden configurar los niveles de registro y proveedores en appsettings.json. Los registros capturan información sobre eventos y errores con diferentes niveles de severidad como información, advertencia o crítico.

Cargado por

Pablo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Sobre Loggin en .NET y ASP.

NET Core

.Net soporta una API de logging que trabaja con una variedad de
proveedores de logging (tanto built-in como de 3ros). En los
siguientes ejemplos se trabajará con los built-in

-Providers: los loggin providers guardan logs, excepto por el


proveedor Console, que “imprime” los logs. Un ejemplo de esto es el
Azure App Insights provider guarda losgs en Azure App insights.
Multiples proveedores pueden ser activados.
EJ: El template default de [Link] Core Web app trae el Generic
Host, y llama a CreateDefaultBuilder, que añade los providers de
Console, Debug, EventSource y EventLog(windows only). Para hacer un
override de los defaults providers, se llama a ClearProviders para
remover todas las instancias de IloggerProvider del builder, y se
añaden los proveedores que uno necesite

-Crear Logs: Para crear logs, se usa un objeto


ILogger<TCategoryName> de dependency injection(ID)
Por ejemplo:
*Crea un logger (ILogger<AboutModel>) que usa una categoría de log
del tipo AboutModel. La categoría del log es una string que esta
asociada con cada log.
*Llama a LogInformation para loggear a el nivel de Information. El
nivel del log indicac la severidad del evento loggeado

-Log Level:

*Ademas de poder asignar el level en el setting de las categorias,


tambien se pueden agregar en el código de un log con Log{LogLevel}:
*recomendaciones para log level:
*En Produccion: Loggear al nivel de Trace o Information genera
una gran cantidad de mensajes. Para controlar costos y no excederse
en los limites de data storage, loggear Trace e Information a un
data store de gran tamaño y costo bajo. Loggear a nivel Warning
hasta Critical deber{ia producir pocos mensajes, asi que los costos
y el espacio no deberían ser un problema
*En Dev: Añadir Trace o Information al hacer troubleshooting.
Para limitar la salida, setear estos niveles solo a las categorias
que se estan investigando.

-Log category: cuando un objeto ILogger es creado, una categorí es


especificada. Esa category es incluida en cada mensaje del log
creada por esa instancia de ILogger. La string de categoria es
arbitraria, pero la convencion es usar el nombre de la clase.

Para especificar explicitamente la categoría, se llama a


[Link]:
-Configurar el Logging: Las configuraciones comunmente son provistas
en la sección Logging en appsettings.{env}.json .
Template:

*las categorias Default, Microsoft y [Link]


estan especificadas
*La categoria Microsoft aplica a todas las categorias que empiecen
con Microsoft. Por ejemplo, esta category aplica este log level a la
categoria [Link]
*un log provider específico no es especificado, asi que LogLevel
aplica a todos los providers activados excepto por Windows EventLog.

Las propiedades de Logging pueden tener LogLevel y propiedades de


log providers. El LogLevel especifica el nivel minimo de log para la
categoria seleccionada *leer LogLevel
Cuando un LogLevel es especificado, el log es habilitado para
mensajes al nivel especifico y más arriba.
Una propiedad de provider puede especificar un nivel. Al poner un
LogLevel dentro de una propiedad de un proveedor, esto hace un
override al non-provider log settings. EJ:
-Log event ID: cada log puede especificar un ID de evento.
Por ejemplo:
El proveedor de logging puede almacenar el eventID en un campo de
ID, en el mensaje, o directamente no usarlo. El proveedor Debug no
muestra eventIDs, siendo que el Console muestra el id en brackets

También podría gustarte