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
- Cree un nuevo proyecto C#
- Instale el paquete de registro Prism.
- Cree un objeto para el SyslogLogger y pase la configuración como parámetro.
- Llame al método de registro cuando sea necesario y pase el mensaje de registro y el nivel de registro.
- Deseche el objeto de registro al final.
Cómo empezar con Prism Logs
Configuración de Prism en proyectos de C
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 sus proyectos.

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 su aplicación.
Crear un nuevo proyecto en Visual Studio
Elija el menú Archivo en la aplicación Visual Studio. Haga clic en "Nuevo Proyecto", luego elija "Aplicación de consola".

Ingrese 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, seleccione el .NET Framework necesario haciendo clic en el botón Crear.

La aplicación elegida determinará cómo está organizado el proyecto de Visual Studio. Simplemente abra el archivo program.cs para comenzar a agregar código a la aplicación y construirla. Puede 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; }
}
}
}
Imports Prism.Logging.Syslog
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks
Friend Class Program
Public Class Demo
Public Property Name() As String
Public Property Age() As Integer
' Configure the logger options
Private Shared genOptions As New Options With {
.HostNameOrIp = "127.0.0.1",
.Port = 514,
.AppNameOrTag = "LoggingDemo"
}
Private Shared logger As New SyslogLogger(genOptions)
Private Shared Loglst As IList(Of LogData) = New List(Of LogData)()
Shared Async Function Main(ByVal args() As String) As Task
MessageLog("Application started.", Prism.Logging.Syslog.Level.Information)
PerformApplicationLogic()
MessageLog("Application stopped.", Prism.Logging.Syslog.Level.Information)
End Function
Private Shared Sub PerformApplicationLogic()
' Example application logic
Console.WriteLine("Performing application logic...")
' Simulate error
Try
Throw New Exception("Simulated Exception")
Catch ex As Exception
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error)
End Try
End Sub
' Logs messages and their levels
Private Shared Sub MessageLog(ByVal message As String, ByVal level As Prism.Logging.Syslog.Level)
Loglst.Add(New LogData With {
.Message = message,
.Level = level.ToString()
})
logger.Log(message, level)
End Sub
Public Class LogData
Public Property Message() As String
Public Property Level() As String
End Class
Public Class Options
Implements ISyslogOptions
Public Property HostNameOrIp() As String
Public Property Port() As Integer?
Public Property AppNameOrTag() As String
End Class
End Class
End Class
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

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 su aplicación.
Múltiples objetivos de registro
Puede 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, puede seleccionar los mejores objetivos de registro para los requisitos y entorno de su aplicación.
Registradores personalizados
Con el complemento, puede implementar la interfaz ILoggerFacade de Prism para construir registradores personalizados. Esto le permite construir capacidades de registro personalizadas basadas en las necesidades de su 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);
Private Shared genOptions As New Options With {
.HostNameOrIp = "127.0.0.1",
.Port = 514,
.AppNameOrTag = "LoggingDemo"
}
Private Shared logger As New SyslogLogger(genOptions)
logger.Log("Sample message", Prism.Logging.Syslog.Level.Information)
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.
- Busque el paquete IronPDF en los resultados de búsqueda, selecciónelo, luego haga clic en el botón "Instalar". Visual Studio manejará la descarga e instalación automáticamente.

- NuGet descargará e instalará el paquete IronPDF y cualquier dependencia requerida para tu proyecto.
- Una vez que IronPDF ha sido instalado, puede usarlo para su 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, puede incorporar IronPDF directamente en su proyecto usando su archivo DLL. Para descargar el archivo ZIP que contiene el DLL, haga clic en este enlace. Una vez que se ha descomprimido, incluya el DLL en su 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}");
}
Imports IronPdf
Shared Sub GeneratePdfLogReport()
Dim renderer = New ChromePdfRenderer() ' Instantiates Chrome Renderer
' Generate HTML content for PDF report
Dim htmlContent As String = "<h1>Log Report</h1><ul>"
For Each log In Loglst
htmlContent &= $"<li><strong>Message: {log.Message}</strong> Level: {log.Level}</li>"
Next log
htmlContent &= "</ul>"
' Generate PDF document
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Save PDF file
Dim filePath As String = "log_report.pdf"
pdfDocument.SaveAs(filePath)
Console.WriteLine($"PDF log report generated: {filePath}")
End Sub
Informe de registro de imagen generado por IronPDF:

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 Lite bundle 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.




