Cómo utilizar el registro personalizado en C#
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.
Cómo utilizar el registro personalizado en C#
- Descargar la biblioteca C# para el registro personalizado
- Fije el LoggingMode a LoggingModes.Custom
- Asignar el Registrador personalizado a su objeto logger personalizado
- Todos los mensajes de registro se reenviarán al registrador personalizado
- Salida de los mensajes de registro para ver los registros
Instalar con NuGet
Install-Package IronPdf
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")
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;
}
// Implement your custom logging logic here.
string logMessage = formatter(state, exception);
// You can use 'logLevel', 'eventId', 'categoryName', and 'logMessage' to log the message as needed.
// For example, you can write it to a file, console, or another destination.
// Example: Writing to the console
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
' Implement your custom logging logic here.
Dim logMessage As String = formatter(state, exception)
' You can use 'logLevel', 'eventId', 'categoryName', and 'logMessage' to log the message as needed.
' For example, you can write it to a file, console, or another destination.
' Example: Writing to the console
Console.WriteLine($"[{logLevel}] [{categoryName}] - {logMessage}")
End Sub
End Class
En este caso, he antepuesto información adicional a los mensajes de registro.
![Ventana de la consola](/static-assets/pdf/how-to/custom-logging/console-window.webp)