Saltar al pie de página
.NET AYUDA

Prism Logging (Cómo Funciona para Desarrolladores)

Las aplicaciones de consola, a pesar de su falta de interfaz gráfica de usuario, a menudo requieren mecanismos de registro robustos para rastrear errores, monitorear el rendimiento de la aplicación y depurar problemas de manera eficiente. Prism.Plugin.Logging, una extensión del marco Prism Logging, ofrece una solución completa de registro para aplicaciones .NET, incluyendo soporte para varios proveedores de registros.

En este artículo, exploramos cómo integrar Prism Logging en aplicaciones de consola usando IronPDF, una poderosa biblioteca .NET para trabajar con documentos PDF. Al combinar estas herramientas, los desarrolladores pueden implementar funcionalidades avanzadas de registro en sus aplicaciones de consola, mejorando las capacidades de mantenimiento y solución de problemas.

Introducción a Prism Logging

Prism.Plugin.Logging extiende Prism, un marco popular para construir aplicaciones XAML, proporcionando capacidades de registro completas. Con soporte para múltiples proveedores de registro como NLog, Serilog y Microsoft.Extensions.Logging, Prism.Plugin.Logging ofrece opciones de flexibilidad y personalización para adaptarse a diversos requisitos de aplicación.

Ventajas de utilizar Prism logging

Configuración de Registro Flexible: Prism.Plugin.Logging permite a los desarrolladores configurar varios proveedores de registro de manera fluida, incluyendo opciones populares como NLog, Serilog y Microsoft.Extensions.Logging.

Soporte de Registro Estructurado: Los desarrolladores pueden registrar datos estructurados con sus mensajes usando Prism.Plugin.Logging. Esta función es especialmente útil en escenarios que involucran aplicaciones de consola donde se debe registrar y agregar datos de contexto extensos, incluyendo marcas de tiempo, códigos de error o actividades de usuario a los informes de registro producidos por IronPDF.

Cómo utilizar Prism logging

  1. Crea un nuevo proyecto C#
  2. Instala el paquete de registro Prism.
  3. Crea un objeto para el SyslogLogger y pasa la configuración como parámetro.
  4. Llama al método de registro cuando sea necesario y pasa el mensaje de registro y el nivel de registro.
  5. Desecha el objeto de registro al final.

Cómo empezar con Prism Logs

Configuración de Prism en C#; Proyectos

Integrar Prism en un proyecto C# es fácil. Utilizar NuGet, el gestor de paquetes .NET de Microsoft es necesario para agregar Prism. La biblioteca proporciona las herramientas y bibliotecas necesarias para incorporar Prism Logs en tus proyectos.

Registro de Prism (Cómo Funciona Para Desarrolladores): Figura 1 - Instala Prism usando el Administrador de Paquetes NuGet para la Solución buscando Prism.Plugin.Logging.Loggly en la barra de búsqueda del Administrador de Paquetes NuGet, luego selecciona el proyecto y haz clic en el botón Instalar.

Implementación de Prism en aplicaciones .NET

Prism es compatible con varios tipos de aplicaciones Dot .NET, incluyendo Windows Forms (WinForms) y Windows Console. Aunque cada marco se implementa de manera diferente, el concepto básico siempre es el mismo, ayudando a registrar los datos relacionados con tu aplicación.

Crear un nuevo proyecto en Visual Studio

Elige el menú Archivo en la aplicación Visual Studio. Haz clic en "Nuevo Proyecto", luego elige "Aplicación de consola".

Registro de Prism (Cómo Funciona Para Desarrolladores): Figura 2 - Abre Visual Studio y selecciona Nuevo Proyecto- Selecciona Aplicación de Consola

Ingresa el nombre del proyecto en el área de texto designada después de seleccionar la ubicación del archivo. Luego, como se muestra en el ejemplo a continuación, selecciona el .NET Framework necesario haciendo clic en el botón Crear.

Registro de Prism (Cómo Funciona Para Desarrolladores): Figura 3 - A continuación, configura tu proyecto especificando el nombre y la ubicación del proyecto deseados. Selecciona el .NET Framework correspondiente para tu proyecto y haz clic en el botón Crear.

La aplicación elegida determinará cómo está organizado el proyecto de Visual Studio. Simplemente abre el archivo program.cs para comenzar a agregar código a la aplicación y construirla. Puedes usar Windows, la consola o la aplicación web.

Después de esto, se puede agregar la biblioteca y probar el código.

Un ejemplo básico del uso de Prism Logs

En el ejemplo de código a continuación, inicializamos el objeto de registro Prism y luego agregamos diferentes niveles de registro uno por uno en los registros de Prism, guardando todos los registros y su criticidad en una lista.

using Prism.Logging.Syslog;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{
    public class Demo
    {
        public string Name { get; set; }
        public int Age { get; set; }

        // Configure the logger options
        static Options genOptions = new Options
        {
            HostNameOrIp = "127.0.0.1",
            Port = 514,
            AppNameOrTag = "LoggingDemo"
        };

        static SyslogLogger logger = new SyslogLogger(genOptions);
        static IList<LogData> Loglst = new List<LogData>();

        static async Task Main(string[] args)
        {
            MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
            PerformApplicationLogic();
            MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information);
        }

        static void PerformApplicationLogic()
        {
            // Example application logic
            Console.WriteLine("Performing application logic...");

            // Simulate error
            try
            {
                throw new Exception("Simulated Exception");
            }
            catch (Exception ex)
            {
                MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
            }
        }

        // Logs messages and their levels
        static void MessageLog(string message, Prism.Logging.Syslog.Level level)
        {
            Loglst.Add(new LogData { Message = message, Level = level.ToString() });
            logger.Log(message, level);
        }

        public class LogData
        {
            public string Message { get; set; }
            public string Level { get; set; }
        }

        public class Options : ISyslogOptions
        {
            public string HostNameOrIp { get; set; }
            public int? Port { get; set; }
            public string AppNameOrTag { get; set; }
        }
    }
}
using Prism.Logging.Syslog;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{
    public class Demo
    {
        public string Name { get; set; }
        public int Age { get; set; }

        // Configure the logger options
        static Options genOptions = new Options
        {
            HostNameOrIp = "127.0.0.1",
            Port = 514,
            AppNameOrTag = "LoggingDemo"
        };

        static SyslogLogger logger = new SyslogLogger(genOptions);
        static IList<LogData> Loglst = new List<LogData>();

        static async Task Main(string[] args)
        {
            MessageLog("Application started.", Prism.Logging.Syslog.Level.Information);
            PerformApplicationLogic();
            MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information);
        }

        static void PerformApplicationLogic()
        {
            // Example application logic
            Console.WriteLine("Performing application logic...");

            // Simulate error
            try
            {
                throw new Exception("Simulated Exception");
            }
            catch (Exception ex)
            {
                MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
            }
        }

        // Logs messages and their levels
        static void MessageLog(string message, Prism.Logging.Syslog.Level level)
        {
            Loglst.Add(new LogData { Message = message, Level = level.ToString() });
            logger.Log(message, level);
        }

        public class LogData
        {
            public string Message { get; set; }
            public string Level { get; set; }
        }

        public class Options : ISyslogOptions
        {
            public string HostNameOrIp { get; set; }
            public int? Port { get; set; }
            public string AppNameOrTag { get; set; }
        }
    }
}
$vbLabelText   $csharpLabel

Se generan informes de registro a partir de Prism Logging. Estamos usando una herramienta llamada Kiwi Syslog Service Manager para monitorear los registros de Prism.

Archivo de registro de Prisma de salida

Registro de Prism (Cómo Funciona Para Desarrolladores): Figura 4 - Monitoreo de los informes de registro de Prism generados usando la herramienta Kiwi Syslog Service Manager.

Operaciones de Prism Logs

Registro extensible

Las capacidades de Prism.Plugin.Logging se expanden a través del registro, que proporciona más funcionalidad y flexibilidad. Ofrece una gama de opciones de configuración para ajustar niveles de registro, objetivos de registro y otras variables para satisfacer las necesidades de registro de tu aplicación.

Múltiples objetivos de registro

Puedes enviar mensajes de registro a una variedad de ubicaciones, incluyendo la consola, archivos, bases de datos y otros servicios de registro, con Prism.Plugin.Logging. Gracias a esta flexibilidad, puedes seleccionar los mejores objetivos de registro para los requisitos y entorno de tu aplicación.

Registradores personalizados

Con el complemento, puedes implementar la interfaz ILoggerFacade de Prism para construir registradores personalizados. Esto te permite construir capacidades de registro personalizadas basadas en las necesidades de tu aplicación o integrarse con marcos de registro de terceros.

Crear Log con Prism Logs

Los registros de Prism se pueden crear fácilmente con unas pocas líneas de código. Ejemplo para crear un registro:

static Options genOptions = new Options
{
    HostNameOrIp = "127.0.0.1",
    Port = 514,
    AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information);
static Options genOptions = new Options
{
    HostNameOrIp = "127.0.0.1",
    Port = 514,
    AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information);
$vbLabelText   $csharpLabel

Integración de Prism Logging y IronPDF

Uso conjunto de Prism e IronPDF

Combinar Prism con IronPDF en un proyecto C# abre algunas posibilidades emocionantes. IronPDF es una herramienta fantástica para convertir este contenido en PDFs, aunque Prism es una gran herramienta para trabajar con registros. Los programadores pueden crear aplicaciones que registren el ítem en un documento PDF diseñado a medida gracias a esta conectividad.

Registro de prisma con IronPDF

Al crear una aplicación de consola de Windows que utiliza Prism Logs, los usuarios pueden interactuar con los registros dentro de su programa. Este control debe ajustarse en la consola dejando mucho espacio para crear registros. Agrega operaciones de registro de servidor y registros HTTP.

Instalar IronPDF

  • Abre el proyecto de Visual Studio.
  • Elija "Herramientas" > "Administrador de Paquetes NuGet" > "Consola del Administrador de Paquetes".

    • En la Consola del Administrador de Paquetes, escribe el siguiente comando y presiona Enter:
    Install-Package IronPdf
  • Otra forma de instalar IronPDF es usando el Administrador de Paquetes NuGet para Soluciones.
  • Busca el paquete IronPDF en los resultados de búsqueda, selecciónalo, luego haz clic en el botón "Instalar". Visual Studio manejará la descarga e instalación automáticamente.

Registro de Prism (Cómo Funciona Para Desarrolladores): Figura 5 - Instala IronPDF usando el Administrador de Paquetes NuGet para la Solución buscando IronPDF en la barra de búsqueda del Administrador de Paquetes NuGet, luego selecciona el proyecto y haz clic en el botón Instalar.

  • NuGet descargará e instalará el paquete IronPDF y cualquier dependencia requerida para tu proyecto.
  • Una vez que IronPDF ha sido instalado, puedes usarlo para tu proyecto.

Instalación a través del sitio web de NuGet

Visita la página de IronPDF en https://www.nuget.org/packages/IronPdf en el sitio web de NuGet para obtener más información sobre las características de IronPDF, compatibilidad y otras opciones de descarga.

Utilizar DLL para instalar

Alternativamente, puedes incorporar IronPDF directamente en tu proyecto usando su archivo DLL. Para descargar el archivo ZIP que contiene el DLL, haz clic en este enlace. Una vez que se ha descomprimido, incluye el DLL en tu proyecto.

Implementación de la lógica

  • Configuración del Renderizador y Registrador: El software configura el renderizador de IronPDF y el registrador de Prism.
  • Registro de mensajes: los mensajes con una categoría y prioridad designadas se pueden registrar utilizando el método MessageLog() . En este ejemplo, registramos los mensajes de inicio y parada de la aplicación, así como cualquier excepción que surja mientras la aplicación se está ejecutando.
  • Aplicación de Lógica: Una parte de la lógica de la aplicación se simula con el método PerformApplicationLogic(). Para ilustrar el registro de errores, simplemente produce un mensaje y genera una excepción en este caso.
  • Creación de un Informe de Registro en PDF: Después de la ejecución de la lógica de la aplicación, el software crea un documento HTML basado en los mensajes registrados. Luego utiliza la característica de RenderHtmlAsPdf() de IronPDF para transformar el documento HTML en un archivo de registro como informe en PDF. El archivo PDF se guarda luego en el disco.

Extender el código previamente definido para integrar el código de IronPDF:

using IronPdf;

static void GeneratePdfLogReport()
{
    var renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer

    // Generate HTML content for PDF report
    string htmlContent = "<h1>Log Report</h1><ul>";
    foreach (var log in Loglst)
    {
        htmlContent += $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>";
    }
    htmlContent += "</ul>";

    // Generate PDF document
    var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

    // Save PDF file
    string filePath = "log_report.pdf";
    pdfDocument.SaveAs(filePath);
    Console.WriteLine($"PDF log report generated: {filePath}");
}
using IronPdf;

static void GeneratePdfLogReport()
{
    var renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer

    // Generate HTML content for PDF report
    string htmlContent = "<h1>Log Report</h1><ul>";
    foreach (var log in Loglst)
    {
        htmlContent += $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>";
    }
    htmlContent += "</ul>";

    // Generate PDF document
    var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

    // Save PDF file
    string filePath = "log_report.pdf";
    pdfDocument.SaveAs(filePath);
    Console.WriteLine($"PDF log report generated: {filePath}");
}
$vbLabelText   $csharpLabel

Informe de registro de imagen generado por IronPDF:

Registro de Prism (Cómo Funciona Para Desarrolladores): Figura 6 - Informe PDF de salida generado usando IronPDF y datos del Informe de Registro de Prism.

Para obtener más información sobre los referencias del código de IronPDF consulta aquí.

Conclusión

La integración de Prism.Plugin.Logging con IronPDF permite a los desarrolladores incorporar fácilmente una capacidad de registro extensiva en aplicaciones de terminal. Los desarrolladores pueden mejorar el mantenimiento general del programa, optimizar las capacidades de depuración y acelerar las operaciones de registro utilizando las características de ambas herramientas. Prism.Plugin.Logging permite que las aplicaciones de consola obtengan cobertura completa de registro, garantizando capacidades fuertes de monitoreo y solución de problemas, con la implementación y configuración adecuadas.

IronPDF ofrece una licencia perpetua de un paquete Lite que incluye una licencia permanente, un año de mantenimiento de software y una actualización de la biblioteca. IronPDF ofrece licencias gratuitas para fines de desarrollo, sujetas a restricciones de tiempo y redistribución. Para adquirir la prueba gratuita. Para obtener más información sobre los diversos productos de Iron Software, visita su enlace página web aquí.

Preguntas Frecuentes

¿Cómo puedo integrar el registro en una aplicación de consola .NET?

Puedes integrar el registro en una aplicación de consola .NET utilizando Prism.Plugin.Logging, que admite varios proveedores de registro y ofrece un marco de registro estructurado. Para configurarlo, instala el paquete de registro de Prism, crea los objetos de registro necesarios y configura tus objetivos y niveles de registro.

¿Cuáles son los beneficios de combinar Prism Logging con IronPDF?

Combinar Prism Logging con IronPDF te permite generar informes de registros PDF, mejorando el mantenimiento y la resolución de problemas de la aplicación. IronPDF puede convertir contenido de registro HTML en documentos PDF, proporcionando un formato portátil para revisar y compartir registros.

¿Cómo puedo convertir datos de registro en un documento PDF en .NET?

Para convertir datos de registro en un documento PDF en .NET, utiliza IronPDF para renderizar tus datos de registro como HTML y luego conviértelos a PDF usando métodos como RenderHtmlAsPdf. Esto te permite crear informes de registro detallados y portátiles.

¿Qué proveedores de registro son compatibles con Prism.Plugin.Logging?

Prism.Plugin.Logging es compatible con múltiples proveedores de registro, incluidos NLog, Serilog y Microsoft.Extensions.Logging. Esta flexibilidad permite a los desarrolladores elegir el proveedor de registro que mejor se adapte a las necesidades de su proyecto.

¿Cómo configuro un proyecto de registro Prism en Visual Studio?

Para configurar un proyecto de registro Prism en Visual Studio, crea un nuevo proyecto de C#, instala el paquete de registro de Prism utilizando el Administrador de paquetes NuGet e inicializa el marco de registro creando un objeto SyslogLogger y configurando niveles y objetivos de registro.

¿Puede usarse Prism.Plugin.Logging para configuraciones de registro personalizadas?

Sí, Prism.Plugin.Logging admite configuraciones de registro personalizadas. Puedes ajustar los niveles de registro, definir registradores personalizados y dirigir los mensajes de registro a varios destinos, permitiendo una configuración de registro adaptada que cumpla con los requisitos específicos de la aplicación.

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