Serilog - alrare/serilog-net GitHub Wiki

Serilog es una herramienta poderosa que facilita el registro de datos para diagnóstico en aplicaciones ASPNET Core Serilog se destaca por su facilidad de configuración y una API limpia que se adapta sin problemas a diferentes versiones de .NET. A diferencia de otras bibliotecas de logging, Serilog no convierte automáticamente los parámetros pasados en los logs en cadenas de texto. En cambio, conserva la estructura de los objetos, lo que facilita la visualización y búsqueda de información valiosa.

PROYECTOS Tipo: Web Api Version: Net 6.0, 8.0 Tipo: Database SqlServer INSTALACIÓN dotnet add package Serilog.AspNetCore --version 8.0.1 dotnet add package Serilog.Settings.Configuration --version 8.0.0 dotnet add package Serilog.Sinks.MSSqlServer --version 6.6.0 CONFIGURACIÓN appsettings.json "AllowedHosts": "*", "Serilog": { "Using": [ "Serilog.Sinks.MSSqlServer" ], "MinimumLevel": "Information", "WriteTo": [ { "Name": "MSSqlServer", "Args": { "connectionString": "YOUR_CONN_STRINGS", "tableName": "Logs", "autoCreateSqlTable": true } }] Using: Hace referencia al nuget instalado MinimumLevel: Configura el nivel al cual se desea que serilog registre logs Debug: Trazas de la aplicación en depuración Information: Información de todo lo ocurrido en el sistema Warning: advertencia (posible fallo) Error: error del sistema Fatal: error bloqueante que puede tener efectos secundarios en el sistema por ejemplo, no poder conectarnos a una base de datos generará probablemente un bloqueo de muchas funcionalidades del sistema) WriteTo: Permite configurar el modo de registro de logs File Console Database connectionString: Se configura la cadena de conexión de la base de datos que registra logs tableName: Nombre de la tabla donde se registran logs autoCreateSqlTable: Propiedad en verdadero permite crear la tabla en la base de datos de logs Program.cs using Serilog;

IConfigurationRoot configuration = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional:false, reloadOnChange: true).Build();

var _logger = new Serilog.LoggerConfiguration() .ReadFrom.Configuration(configuration).CreateLogger();

builder.Logging.AddSerilog(_logger);

Se instancia IConfigurationRoot en variable configuration para poder leer el archivo appsettins.json Se instancia Serilog.LoggerConfiguration en la variable _logger Se construye Serilog y se agrega el objeto _logger configurado en la aplicación Controller.cs

private readonly ILogger _logger;

public WeatherForecastController(ILogger logger) { _logger = logger; }

En esta clase se utiliza el servicio Serilog a través de inyección de dependencias, todo lo que se procesa dentro de la variable _logger se va a registrar en el log.

EJEMPLOS DE REGISTROS DE LOG Serilog MinimumLevel Information Controller.cs

appsettings.json

Record in logs table

Serilog MinimumLevel Warning Controller.cs

appsettings.json

Record in logs table

Analizar el campo de la Exeption System.NotImplementedException: The method or operation is not implemented.
at SerilogNet8.Controllers.WeatherForecastController.Get() in /Users/alex/Documents/SerilogNet8/SerilogNet8/Controllers/WeatherForecastController.cs:line 28 Muestra:

Método donde ocurrió la falla Linea de código de la Execpción (Stack trace) Analizar campo Properties Mensaje Log personalizado SerilogNet8.Controllers.WeatherForecastController 5d5d17c4-13fc-4726-ae62-a173463e9ecf SerilogNet8.Controllers.WeatherForecastController.Get (SerilogNet8) 0HN23M34AT4S1:00000003 /WeatherForecast 0HN23M34AT4S1 Analizar campo Properties Mensaje Execpcion SerilogNet8.Controllers.WeatherForecastController 5d5d17c4-13fc-4726-ae62-a173463e9ecf SerilogNet8.Controllers.WeatherForecastController.Get (SerilogNet8) 0HN23M34AT4S1:00000003 /WeatherForecast 0HN23M34AT4S1

Comparten el mismo RequestId porque esos 2 registros de log vinieron de la misma petición HTTP.

El RequestId permite hacer una correlación para el seguimiento a un error con el mismo Id.

⚠️ **GitHub.com Fallback** ⚠️