Saltar al pie de página
.NET AYUDA

Serilog .NET (Cómo funciona para desarrolladores)

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

En .NET Core, una configuración de registro estructurado eficiente con Serilog es fundamental para diagnosticar y entender el comportamiento de la aplicación o los eventos de registro. Entre varias bibliotecas de registro, Serilog destaca por sus robustas capacidades de mensajería de registro estructurado. A diferencia de los registros tradicionales, el registro estructurado formatea los mensajes de nivel de registro como datos estructurados, haciéndolos más fáciles de analizar y consultar. Este artículo explora cómo Serilog eleva el proceso de registro en aplicaciones .NET 6, asegurando que cada evento de registro no sea solo una cadena, sino un objeto estructurado y consultable. Este enfoque transforma los mensajes de registro en un activo estratégico, permitiendo una monitorización y análisis más efectivos.

Cómo entender las características de Serilog

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

Registro estructurado

Una de las características destacadas de Serilog es su soporte para registro estructurado. En lugar de simplemente registrar mensajes como texto plano, Serilog te permite registrar datos estructurados. Estos datos estructurados pueden ser un objeto JSON, un diccionario, o cualquier otro tipo que pueda ser serializado. Al registrar datos estructurados, puedes analizar y consultar fácilmente los eventos de registro usando herramientas como Elasticsearch o Splunk.

Configuración flexible

Serilog ofrece opciones de configuración flexibles que te permiten personalizar el comportamiento de registro según las necesidades de tu aplicación. Puedes configurar Serilog programáticamente o usando 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

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

  • 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 del registro es una característica que te permite añadir información contextual adicional a tus eventos de registro. Serilog proporciona varios enriquecedores que pueden añadir automáticamente información como timestamps, ID de hilo o nivel de registro a tus eventos de registro. También puedes crear enriquecedores personalizados para añadir información específica de la aplicación.

Filtrado de registros

Serilog te permite filtrar eventos de registro basados en varios criterios. Puedes configurar filtros para excluir o incluir eventos de registro basados en el nivel de registro, valores de propiedades o cualquier otra condición. Esta capacidad de filtrado te permite centrarte en los eventos de registro que son más relevantes para tu análisis o solución de problemas.

Al entender y aprovechar estas características, puedes aprovechar el poder de Serilog para mejorar tus capacidades de registro y obtener valiosos conocimientos sobre el comportamiento de tu aplicación.

Registro estructurado: Una característica esencial

La principal fortaleza de Serilog reside en convertir los mensajes de registro en datos estructurados. A diferencia de otras bibliotecas de registro que generan texto plano, Serilog genera registros en un formato JSON estructurado, simplificando el análisis y consulta de los datos de registro. Esta capacidad es crucial para las aplicaciones modernas donde el análisis y la monitorización de registros son fundamentales para la inteligencia operativa. Los registros estructurados son particularmente beneficiosos cuando un mensaje de registro se ingiere en sistemas como la pila ELK (Elasticsearch, Logstash, Kibana) para un análisis avanzado.

Detalles de eventos de registro

Serilog enriquece los eventos de registro con información contextual, proporcionando una vista 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, incluidos timestamps, niveles de registro, detalles de excepciones 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 conocimientos críticos sobre el comportamiento y 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, empieza configurando 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.

Fichero de configuración

Usa el archivo JSON de configuración para definir niveles de registro, 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 configuraciones en el archivo appsettings.json, que te permite dirigir tu salida de registro a varios sumideros como una consola, un archivo, o incluso servicios de gestión de registros en la nube.

Programáticamente en código

Alternativamente, configura Serilog directamente en el código usando 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, puedes configurar un archivo de registro rotativo que crea un nuevo archivo de registro a intervalos específicos o al alcanzar cierto tamaño, asegurando una gestión eficiente de los archivos de registro.

// Create a logger instance with a rolling log file that creates a new log file every day
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day) 
    .CreateLogger();
// Create a logger instance with a rolling log file that creates a new log file every day
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day) 
    .CreateLogger();
' Create a logger instance with a rolling log file that creates a new log file every day
Dim logger = (New LoggerConfiguration()).WriteTo.File("logs/myapp.txt", rollingInterval:= RollingInterval.Day).CreateLogger()
$vbLabelText   $csharpLabel

Integración con ASP.NET Core

Integrar Serilog con ASP.NET Core implica añadir el paquete Serilog a través de la consola del administrador de paquetes y configurar el logger en el archivo Program.cs. Las declaraciones var builder y var app en .NET 6 integran sin problemas Serilog en la infraestructura de registro de la aplicación. Este proceso reemplaza al logger predeterminado con Serilog, asegurando que todos los mensajes de registro sean procesados a través del pipeline de Serilog.

var builder = WebApplication.CreateBuilder(args);

// Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));

var app = builder.Build();
var builder = WebApplication.CreateBuilder(args);

// Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));

var app = builder.Build();
Dim builder = WebApplication.CreateBuilder(args)

' Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog(Function(ctx, lc) lc.WriteTo.Console().ReadFrom.Configuration(ctx.Configuration))

Dim app = builder.Build()
$vbLabelText   $csharpLabel

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

Iron Software Suite ofrece un conjunto de bibliotecas C# que pueden mejorar significativamente las capacidades de registro dentro de una aplicación .NET 6 usando Serilog. Este conjunto incluye varias herramientas como IronPDF, IronOCR, IronXL, IronZIP, IronQR, IronBarcode e IronWebScraper, cada una ofreciendo 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, sigue estos pasos generales:

  1. Instala los paquetes requeridos de Iron Software Suite usando NuGet o la consola del administrador de paquetes.
  2. Configura Serilog usando las bibliotecas de sumideros deseadas, como Serilog.Sinks.File para archivos de registro o Serilog.Sinks.Console para salida en consola.
  3. Usa las bibliotecas de Iron Software Suite dentro del código de tu aplicación para aprovechar sus funcionalidades y mejorar el proceso de registro. Esto puede implicar tareas tales como generar PDFs, leer códigos de barras o raspar contenido web.

Al integrar Iron Software Suite con Serilog, puedes extender las capacidades de registro de tu aplicación ASP.NET Core y aprovechar las funcionalidades adicionales proporcionadas por estas bibliotecas.

HierroPDF

IronPDF permite la creación, lectura y edición de PDFs dentro de aplicaciones .NET. Esto puede ser particularmente útil cuando se combina con Serilog para generar informes PDF de datos de registro, permitiendo una fácil distribución y visualización de información de registro en un formato estándar.

Serilog .NET (Cómo Funciona Para Desarrollador): Figura 1 - IronPDF

IronOCR

IronOCR es una biblioteca de Reconocimiento Óptico de Caracteres (OCR) que puede traducir imágenes a texto en 125 idiomas. Esta característica puede ser utilizada en escenarios de registro donde se debe extraer datos de texto de imágenes o documentos escaneados, enriqueciendo así los datos de registro con más información contextual.

Serilog .NET (Cómo Funciona Para Desarrollador): Figura 2 - IronOCR

IronXL

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

Serilog .NET (Cómo Funciona Para Desarrollador): Figura 3 - IronXL

Código de barras de hierro

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

Serilog .NET (Cómo Funciona Para Desarrollador): Figura 4 - IronBarcode

Conclusión

Integrar Iron Software Suite con Serilog en aplicaciones ASP.NET Core no solo 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. Ya sea generando informes PDF, procesando registros basados en imágenes, manejando datos de Excel, gestionando el tamaño de archivos de registro, asegurando la información de registro, o raspando 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 una prueba gratuita de las Bibliotecas C# de Iron Software, proporcionando una excelente oportunidad para que los desarrolladores exploren sus características y capacidades en la mejora de sus aplicaciones ASP.NET Core, particularmente cuando se integra con Serilog para funciones avanzadas de registro y procesamiento de datos.

Preguntas Frecuentes

¿Cómo mejora Serilog el registro en aplicaciones .NET?

Serilog mejora el registro en aplicaciones .NET transformando los eventos de registro en objetos estructurados y consultables, lo que permite un mejor diagnóstico y análisis en comparación con el registro tradicional en texto plano.

¿Cuáles son las ventajas de usar el registro estructurado con Serilog?

El registro estructurado con Serilog ofrece la ventaja de una fácil interpretación y consulta de datos de registro, lo cual es útil para el análisis con herramientas como Elasticsearch, mejorando la inteligencia operativa y el monitoreo.

¿Cómo puedo configurar Serilog en una aplicación .NET 6?

En una aplicación .NET 6, Serilog se puede configurar usando la clase `LoggerConfiguration` o mediante archivos de configuración como `appsettings.json`, permitiendo ajustes flexibles del comportamiento de registro sin cambios en el código.

¿Qué opciones de integración ofrece Serilog para diferentes destinos de registro?

Serilog ofrece varias bibliotecas de sinks para integración, permitiendo que los eventos de registro se envíen a diferentes destinos como consolas, archivos de texto o servidores como Elasticsearch o Seq.

¿Qué papel juegan los enriquecedores en el registro de Serilog?

Los enriquecedores en Serilog añaden información contextual a los eventos de registro, como marcas de tiempo y niveles de registro. Se pueden crear enriquecedores personalizados para incluir datos específicos de la aplicación, mejorando el valor informativo de los registros.

¿Se puede combinar Serilog con otras bibliotecas para mejorar su funcionalidad?

Sí, Serilog se puede combinar con bibliotecas como IronPDF, IronOCR y IronXL, que ofrecen funcionalidades como generación de PDF, procesamiento OCR y manipulación de Excel, enriqueciendo el proceso de registro y manejo de datos en aplicaciones .NET.

¿Cómo puedo generar informes PDF de datos de registro usando .NET?

Puede generar informes PDF de datos de registro en .NET usando bibliotecas como IronPDF, que pueden crear, leer y editar PDFs, permitiendo la integración con sistemas de registro para producir informes detallados de registros.

¿Es posible exportar datos de registro a Excel para análisis en .NET?

Sí, utilizando bibliotecas como IronXL, puede manipular archivos de Excel sin necesidad de Office Interop, permitiendo que los datos de registro se exporten a Excel para un análisis y reporte adicionales en aplicaciones .NET.

¿Qué beneficios aportan las bibliotecas de Iron Software a sistemas de registro como Serilog?

Las bibliotecas de Iron Software mejoran sistemas de registro como Serilog al proporcionar funcionalidades adicionales como creación de PDF, OCR y manipulación de archivos de Excel, lo cual enriquece las capacidades de procesamiento y reporte de datos en entornos .NET.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología en Iron Software y un ingeniero visionario que lidera la tecnología PDF en C#. Como el desarrollador original detrás de la base de código central de Iron Software, ha moldeado la arquitectura de productos de la compañía desde ...

Leer más