AYUDA .NET

Serilog .NET (Cómo funciona para desarrolladores)

Actualizado 27 de enero, 2024
Compartir:

Introducción a la configuración del registrador Serilog y a la configuración del comportamiento de registro de diagnóstico estructurado en la aplicación .NET

En .NET Core, una configuración de registro Serilog estructurada y eficiente es primordial para diagnosticar y comprender el comportamiento de la aplicación o los eventos de registro. Entre varias bibliotecas de registro, Serilog destaca por sus sólidas capacidades de mensajes de registro estructurados. A diferencia del registro tradicional, el registro estructurado da formato a los mensajes de nivel de registro como datos estructurados, lo que facilita su análisis y consulta. Este artículo explora cómo Serilog eleva el proceso de registro en aplicaciones .NET 6, asegurando que cada evento de registro no es sólo una cadena, sino un objeto estructurado y consultable. Este enfoque transforma los mensajes de registro en un activo estratégico que permite una supervisión y un análisis más eficaces.

Comprender las características de Serilog

Serilog es una biblioteca de registro potente y flexible para aplicaciones .NET. Ofrece varias funciones que mejoran la experiencia de registro y facilitan el diagnóstico y el análisis del comportamiento de las aplicaciones. Esta sección explorará algunas de las características clave ofrecidas por Serilog.

Registro estructurado

Una de las características más destacadas de Serilog es su compatibilidad con el registro estructurado. En lugar de limitarse a registrar mensajes como texto sin formato, Serilog le permite registrar datos estructurados. Estos datos estructurados pueden ser un objeto JSON, un diccionario o cualquier otro tipo que pueda serializarse. Al registrar datos estructurados, puede analizar y consultar fácilmente los eventos de registro mediante herramientas como Elasticsearch o Splunk.

Configuración flexible

Serilog ofrece opciones de configuración flexibles que le permiten personalizar el comportamiento de registro de acuerdo a las necesidades de su aplicación. Puede configurar Serilog mediante programación o utilizando archivos de configuración. Esta flexibilidad permite ajustar el comportamiento del registro en tiempo de ejecución sin necesidad de reiniciar la aplicación.

Bibliotecas de fregaderos

Serilog proporciona varias bibliotecas de sumideros que le permiten enviar eventos de registro a diferentes destinos. Algunas de las bibliotecas de fregaderos más populares son:

  • Serilog.Sinks.Console: Envía eventos de registro a la consola.
  • Serilog.Sinks.File: Escribe eventos de registro en archivos de texto.
  • Serilog.Sinks.Seq: Envía eventos de registro a Seq, un servidor de registro estructurado.
  • Serilog.Sinks.Elasticsearch: Envía eventos de registro a Elasticsearch.

    Estas bibliotecas de sumideros facilitan la integración de Serilog con diferentes infraestructuras y herramientas de registro.

Enriquecimiento del registro

El enriquecimiento de los registros es una función que permite añadir información contextual adicional a los eventos de registro. Serilog proporciona varios enriquecedores que pueden añadir automáticamente información como marca de tiempo, ID de hilo o nivel de registro a los eventos de registro. También puede crear enriquecimientos personalizados para añadir información específica de la aplicación.

Filtrado de registros

Serilog le permite filtrar los eventos de registro basándose en varios criterios. Puede configurar filtros para excluir o incluir eventos de registro en función del nivel de registro, los valores de las propiedades o cualquier otra condición. Esta capacidad de filtrado le permite centrarse en los eventos de registro más relevantes para su análisis o resolución de problemas.

Mediante la comprensión y el aprovechamiento de estas características, puede aprovechar el poder de Serilog para mejorar sus capacidades de registro y obtener información valiosa sobre el comportamiento de su aplicación.

Registro estructurado: Una función esencial

El principal punto fuerte de Serilog consiste en convertir los mensajes de registro en datos estructurados. A diferencia de otras bibliotecas de registro que generan texto sin formato, Serilog genera registros en un formato JSON estructurado, lo que simplifica el análisis y la consulta de los datos de registro. Esta capacidad es crucial para las aplicaciones modernas, en las que el análisis y la supervisión de los registros forman parte integrante de la inteligencia operativa. Los registros estructurados son especialmente beneficiosos cuando un mensaje de registro se ingiere en sistemas como el ELK (Elasticsearch, Logstash, Kibana) para análisis avanzados.

Detalles del evento de registro enriquecido

Serilog enriquece los eventos de registro con información contextual, proporcionando una visión completa de lo que está sucediendo dentro de una aplicación. Cada evento de registro puede contener muchos detalles más allá de un simple mensaje de registro, incluyendo marcas de tiempo, niveles de registro, detalles de excepción y propiedades personalizadas. Esto hace que Serilog sea superior a otras bibliotecas de registro en términos de profundidad y claridad del registro, ofreciendo a los desarrolladores información crítica sobre el comportamiento y el rendimiento de la aplicación.

Implementación de Serilog en ASP.NET Core

Para integrar Serilog en una aplicación .NET 6 ASP.NET Core, comience por configurar Serilog a través del archivo appsettings.json o la sección de configuración de Serilog. Esta configuración dicta cómo, dónde y qué datos de registro se capturan.

Mediante archivo de configuración

Utilice el archivo JSON de configuración para definir los niveles de registro, los destinos de salida (como archivos de registro o consola)y el formato de salida del registro. El enfoque del archivo de configuración ofrece la flexibilidad de cambiar el comportamiento del registro sin modificar el código. Esto se hace especificando la configuración en el archivo appsettings.json, que le permite dirigir su salida de registro a varios sumideros, como una consola, un archivo o incluso servicios de gestión de registros basados en la nube.

Programación en código

Alternativamente, configure Serilog directamente en el código utilizando la clase LoggerConfiguration. Este método se utiliza a menudo para configurar escenarios de registro más complejos, como niveles de registro dinámicos o sumideros de registro personalizados. Por ejemplo, puede configurar un archivo de registro continuo que cree un nuevo archivo de registro a intervalos específicos o al alcanzar un determinado tamaño, lo que garantiza una gestión eficaz de los archivos de registro.

var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();
Dim logger = (New LoggerConfiguration()).WriteTo.File("logs/myapp.txt", rollingInterval:= RollingInterval.Day).CreateLogger()
VB   C#

Integración con ASP.NET Core

La integración de Serilog con ASP.NET Core implica añadir el paquete Serilog a través de la consola del gestor de paquetes y configurar el registrador en el archivo Program.cs. Las declaraciones var builder y var app en .NET 6 conectan perfectamente Serilog a la infraestructura de registro de la aplicación. Este proceso reemplaza el logger por defecto con Serilog, asegurando que todos los mensajes de log son procesados a través del pipeline Serilog.

var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));
var app = builder.Build();
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));
var app = builder.Build();
Dim builder = WebApplication.CreateBuilder(args)
builder.Host.UseSerilog(Function(ctx, lc) lc.WriteTo.Console().ReadFrom.Configuration(ctx.Configuration))
Dim app = builder.Build()
VB   C#

Integración de Iron Software Suite con Serilog en ASP.NET Core

Iron Software Suite ofrece una colección de librerías C# que pueden mejorar significativamente las capacidades de registro dentro de una aplicación .NET 6 utilizando Serilog. Esta suite incluye varias herramientas como IronPDF, IronOCR, IronXL, IronZip, IronQR, IronBarcode y IronWebScraper, cada una de las cuales ofrece funcionalidades únicas que pueden integrarse en una aplicación ASP.NET Core para mejorar sus capacidades de registro y procesamiento de datos.

Para integrar Iron Software Suite con Serilog en una aplicación ASP.NET Core, siga estos pasos generales:

  1. Instale los paquetes necesarios de Iron Software Suite mediante NuGet o la consola del gestor de paquetes.
  2. Configura Serilog usando las librerías sink deseadas, como Serilog.Sinks.File para ficheros log o Serilog.Sinks.Console para salida de consola.
  3. Utilice las bibliotecas de Iron Software Suite dentro del código de su aplicación para aprovechar sus funcionalidades y mejorar el proceso de registro. Esto puede implicar tareas como la generación de PDF, la lectura de códigos de barras o el raspado de contenidos web.

    Mediante la integración de Iron Software Suite con Serilog, puede ampliar las capacidades de registro de su aplicación ASP.NET Core y aprovechar las funcionalidades adicionales proporcionadas por estas bibliotecas.

IronPDF

IronPDF permite crear, leer y editar archivos PDF en aplicaciones .NET. Esto puede resultar especialmente útil cuando se combina con Serilog para generar informes PDF de los datos de registro, lo que permite distribuir y visualizar fácilmente la información de registro en un formato estandarizado.

Serilog .NET (Cómo funciona para desarrolladores): Figura 1 - IronPDF

IronOCR

IronOCR es un programa de reconocimiento óptico de caracteres (OCR) que puede traducir imágenes a texto en 127 idiomas. Esta función puede utilizarse en escenarios de registro en los que los datos de texto deben extraerse de imágenes o documentos escaneados, enriqueciendo así los datos de registro con más información contextual.

Serilog .NET (Cómo funciona para desarrolladores): Figura 2 - IronOCR

IronXL

IronXL proporciona funcionalidad para trabajar con Excel sin necesidad de Office Interop. Esto puede ser particularmente beneficioso para fines de registro, ya que los datos de registro se pueden exportar a Excel para su posterior análisis y presentación de informes, ofreciendo una interfaz familiar para la manipulación y visualización de datos.

Serilog .NET (Cómo funciona para desarrolladores): Figura 3 - IronXL

IronBarcode

IronBarcode facilita la lectura y escritura de códigos QR y códigos de barras. Esta biblioteca puede incrustar o extraer información codificada dentro de los archivos de registro, mejorando la seguridad y la trazabilidad de la información registrada.

Serilog .NET (Cómo funciona para desarrolladores): Figura 4 - IronBarcode

Conclusión

La integración de Iron Software Suite con Serilog en aplicaciones ASP.NET Core no sólo enriquece el proceso de registro, sino que también añade una capa de versatilidad en el manejo, presentación y análisis de datos de registro. Tanto si se trata de generar informes en PDF, procesar registros basados en imágenes, manejar datos de Excel, gestionar el tamaño de los archivos de registro, proteger la información de registro o extraer contenido web, la combinación de Serilog con Iron Software Suite abre un sinfín de posibilidades para el registro avanzado y el procesamiento de datos en entornos .NET 6.

Iron Software Suite ofrece un prueba gratuita El lanzamiento de ASP.NET Core ofrece a los desarrolladores una excelente oportunidad de explorar sus características y capacidades para mejorar sus aplicaciones ASP.NET Core, especialmente cuando se integra con Serilog para funciones avanzadas de registro y procesamiento de datos.

< ANTERIOR
Microsoft Logging C# (Cómo funciona para desarrolladores)
SIGUIENTE >
C# REPL (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123