Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Las aplicaciones de consola, a pesar de carecer de interfaz gráfica de usuario, suelen requerir sólidos mecanismos de registro para rastrear errores, supervisar el rendimiento de la aplicación y depurar problemas con eficacia. Prism.Plugin.LoggingPrism Logging, una extensión del marco Prism Logging, ofrece una completa solución de registro para aplicaciones .NET, incluida la compatibilidad con varios proveedores de registro.
En este artículo, exploramos cómo integrar Prism Logging en aplicaciones de consola utilizandoIronPDFuna potente biblioteca .NET para trabajar con documentos PDF. Combinando estas herramientas, los desarrolladores pueden implementar funciones avanzadas de registro en sus aplicaciones de consola, mejorando las capacidades de mantenimiento y resolución de problemas.
Prism.Plugin.Logging amplía Prism, un popular marco de trabajo para la creación de aplicaciones XAML, proporcionando completas funciones de registro. Con soporte para múltiples proveedores de registro como NLog, Serilog, y Microsoft.Extensions.Logging, Prism.Plugin.Logging ofrece flexibilidad y opciones de personalización para adaptarse a diversos requisitos de aplicación.
Configuración flexible de registro: Prism.Plugin.Logging permite a los desarrolladores configurar varios proveedores de registro sin problemas, incluyendo opciones populares como NLog, Serilog y Microsoft.Extensions.Logging.
Soporte de registro estructurado: Los desarrolladores pueden registrar datos estructurados con sus mensajes utilizando Prism.Plugin.Logging. Esta función es especialmente útil en situaciones que implican aplicaciones de consola en las que deben registrarse y añadirse a los informes de registro producidos por IronPDF datos contextuales completos, como marcas de tiempo, códigos de error o actividades del usuario.
Crear un nuevo proyecto C
Instale el paquete de registro Prism.
Crea un objeto para el SyslogLogger y pasa 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.
Integrar Prism en un proyecto C# es fácil. Para añadir Prism es necesario utilizar NuGet, el gestor de paquetes .NET de Microsoft. Esta biblioteca proporciona las herramientas y bibliotecas necesarias para incorporar Prism Logs a sus proyectos.
Prism es compatible con varios tipos de aplicaciones Dot .NET, incluidas Windows Forms(WinForms) y la consola de Windows. Aunque cada framework se implementa de forma diferente, el concepto básico es siempre el mismo, ayudándonos a registrar los datos relacionados con su aplicación.
Seleccione el menú Archivo de la aplicación Visual Studio. Haz clic en "Nuevo proyecto" y elige "Aplicación de consola".
Introduzca el nombre del proyecto en el área de texto designada tras seleccionar la ubicación del archivo. A continuación, como se muestra en el ejemplo siguiente, seleccione el .NET Framework necesario haciendo clic en el botón Crear.
La aplicación elegida determinará cómo se organiza el proyecto de Visual Studio. Basta con abrir el archivo program.cs para empezar a añadir código a la aplicación y construirla. Puede utilizar Windows, la consola o la aplicación web.
Después de esto, se puede añadir la biblioteca y probar el código.
En el siguiente ejemplo de código, lanzamos el objeto prism log y luego añadimos diferentes niveles de registro uno a uno en los registros de Prism y guardamos todos los registros y la criticidad en una lista.
using Prism.Logging.Syslog;
class Program
{
public class Demo
{
public string name { get; set; }
public int age { get; set; }
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 started.", Prism.Logging.Syslog.Level.Information);
}
static void PerformApplicationLogic()
{
// Example application logic
Console.WriteLine("Performing application logic...");
// Simulate error
try
{
throw new Exception();// This will throw an exception
}
catch (Exception ex)
{
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
}
}
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;
class Program
{
public class Demo
{
public string name { get; set; }
public int age { get; set; }
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 started.", Prism.Logging.Syslog.Level.Information);
}
static void PerformApplicationLogic()
{
// Example application logic
Console.WriteLine("Performing application logic...");
// Simulate error
try
{
throw new Exception();// This will throw an exception
}
catch (Exception ex)
{
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error);
}
}
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
Friend Class Program
Public Class Demo
Public Property name() As String
Public Property age() As Integer
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 started.", 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() ' This will throw an exception
Catch ex As Exception
MessageLog($"Error occurred: {ex.Message}", Prism.Logging.Syslog.Level.Error)
End Try
End Sub
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
Los informes de registro se generan desde Prism Logging. Estamos utilizando una herramienta llamada Kiwi Syslog service Manager para supervisar los registros de prisma.
Las capacidades de registro de Prism.Plugin.Prism se amplían mediante el registro, que proporciona más funcionalidad y flexibilidad. Ofrece una serie de opciones de configuración para ajustar los niveles de registro, los objetivos de registro y otras variables para satisfacer las necesidades de registro de su aplicación.
Con Prism.Plugin.Logging puede dirigir los mensajes de registro a una variedad de ubicaciones, incluyendo la consola, archivos, bases de datos y otros servicios de registro. Gracias a esta flexibilidad, puede seleccionar los mejores objetivos de registro para los requisitos y el entorno de su aplicación.
Con el plugin, puedes implementar la interfaz ILoggerFacade de Prism para construir loggers personalizados. Esto le permite construir capacidades de registro personalizadas basadas en las necesidades de su aplicación o interactuar con marcos de registro de terceros.
Los registros de Prism pueden crearse fácilmente con unas pocas líneas de código. A continuación se muestra el 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(Message, _level);
static Options genOptions = new Options
{
HostNameOrIp = "127.0.0.1",
Port = 514,
AppNameOrTag = "LoggingDemo"
};
static SyslogLogger logger = new SyslogLogger(genOptions);
logger.Log(Message, _level);
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(Message, _level)
Combinación de*Prism** conIronPDF en un proyecto C# abre algunas posibilidades apasionantes. IronPDF es una herramienta fantástica para convertir este contenido en PDF, aunque Prism es una gran herramienta para trabajar con registros. Gracias a esta conectividad, los programadores pueden crear aplicaciones que registren el artículo en un documento PDF diseñado a medida.
Al crear una aplicación de consola de Windows que utiliza Prism Logs, los usuarios pueden interactuar con los Logs dentro de su programa. Este mando debería caber en la consola con espacio de sobra para hacer troncos. Añade operaciones de registro del servidor y registros HTTP.
Seleccione "Herramientas" > "Gestor de paquetes NuGet" > "Consola del gestor de paquetes".
Install-Package IronPdf
Otra forma de instalar IronPDF es utilizando NuGet Package Manager for Solutions.
Visite 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, su compatibilidad y otras opciones de descarga.
Como alternativa, puede incorporar IronPDF directamente a su proyecto utilizando su archivo DLL. Para descargar el archivo ZIP que contiene la DLL, haga clic aquíenlace. Una vez descomprimida, incluye la DLL en tu proyecto.
Creación de un informe de registro en PDF: Tras la ejecución de la lógica de la aplicación, el software crea un documento HTML basado en los mensajes registrados. A continuación, utiliza RenderHtmlAsPdf de IronPDF() para transformar el documento HTML en un archivo de registro como informe PDF. A continuación, el archivo PDF se guarda en el disco.
Ampliación del código previamente definido para integrar el código IronPDF:
using IronPdf;
static void GeneratePdfLogReport(ChromePdfRenderer Renderer)
{
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>{log.message}:</strong> {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(ChromePdfRenderer Renderer)
{
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>{log.message}:</strong> {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(ByVal Renderer As ChromePdfRenderer)
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>{log.message}:</strong> {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
A continuación se muestra el informe de registro de imágenes generado desde IronPDF
Para saber más sobre las referencias del código IronPDF, consulteaquí.
Prism.Plugin.Logging integración conIronPDF permite a los desarrolladores incorporar fácilmente una amplia capacidad de registro en las aplicaciones de terminal. Los desarrolladores pueden mejorar el mantenimiento general de los programas, optimizar las capacidades de depuración y acelerar las operaciones de registro utilizando las funciones de ambas herramientas. Prism.Plugin.Logging permite que las aplicaciones de consola obtengan una cobertura de registro completa, garantizando sólidas capacidades de supervisión y solución de problemas, con la implementación y configuración correctas.
IronPDF ofrece una licencia perpetua de $ 749 Lite bundle que viene con 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 temporales y de redistribución. Para adquirir elprueba gratuita. Para obtener más información sobre los distintos productos de Iron Software, visite su sitio websitio web enlace.
9 productos API .NET para sus documentos de oficina