Cómo utilizar el registro personalizado en C#

por Chaknith Bin

El registro personalizado se refiere a la práctica de implementar un sistema de registro adaptado a las necesidades y requisitos específicos de una aplicación o sistema. Consiste en crear y utilizar archivos de registro para registrar información, eventos y mensajes generados por el software durante su funcionamiento.


Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Ejemplo de registro personalizado

Para utilizar la función de registro personalizado, cambie la propiedad LoggingMode a LoggingModes.Custom. Después, asigna la propiedad CustomLogger a la clase de logger personalizado que has creado.

:path=/static-assets/pdf/content-code-examples/how-to/custom-logging-custom-logging.cs
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom;
IronSoftware.Logger.CustomLogger = new CustomLoggerClass("logging");
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom
IronSoftware.Logger.CustomLogger = New CustomLoggerClass("logging")
VB   C#

Los registros de IronPdf se dirigirán al objeto logger personalizado. Los mensajes seguirán siendo idénticos a los del registrador IronPdf; simplemente se transmitirán al registrador personalizado. La forma en que el registrador personalizado gestiona los mensajes será determinada por el diseñador del registrador personalizado. Usemos la siguiente clase de logger personalizado como ejemplo.

:path=/static-assets/pdf/content-code-examples/how-to/custom-logging-custom-logging-class.cs
public class CustomLoggerClass : ILogger
{
    private readonly string categoryName;

    public CustomLoggerClass(string categoryName)
    {
        this.categoryName = categoryName;
    }

    public IDisposable BeginScope<TState>(TState state)
    {
        return null;
    }

    public bool IsEnabled(LogLevel logLevel)
    {
        return true;
    }

    public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
    {
        if (!IsEnabled(logLevel))
        {
            return;
        }

        //  Implemente aquí su lógica de registro personalizada.
        string logMessage = formatter(state, exception);

        //  Puede utilizar 'logLevel', 'eventId', 'categoryName' y 'logMessage' para registrar el mensaje según sea necesario.
        //  Por ejemplo, puede escribirlo en un archivo, en la consola o en otro destino.

        //  Ejemplo: Escribir en la consola
        Console.WriteLine($"[{logLevel}] [{categoryName}] - {logMessage}");
    }
}
Public Class CustomLoggerClass
	Implements ILogger

	Private ReadOnly categoryName As String

	Public Sub New(ByVal categoryName As String)
		Me.categoryName = categoryName
	End Sub

	Public Function BeginScope(Of TState)(ByVal state As TState) As IDisposable
		Return Nothing
	End Function

	Public Function IsEnabled(ByVal logLevel As LogLevel) As Boolean
		Return True
	End Function

	Public Sub Log(Of TState)(ByVal logLevel As LogLevel, ByVal eventId As EventId, ByVal state As TState, ByVal exception As Exception, ByVal formatter As Func(Of TState, Exception, String))
		If Not IsEnabled(logLevel) Then
			Return
		End If

		'  Implemente aquí su lógica de registro personalizada.
		Dim logMessage As String = formatter(state, exception)

		'  Puede utilizar 'logLevel', 'eventId', 'categoryName' y 'logMessage' para registrar el mensaje según sea necesario.
		'  Por ejemplo, puede escribirlo en un archivo, en la consola o en otro destino.

		'  Ejemplo: Escribir en la consola
		Console.WriteLine($"[{logLevel}] [{categoryName}] - {logMessage}")
	End Sub
End Class
VB   C#

En este caso, he antepuesto información adicional a los mensajes de registro.

Ventana de la consola

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.