Comment utiliser la journalisation personnalisée dans C# ;
La journalisation personnalisée consiste à mettre en œuvre un système de journalisation adapté aux besoins et aux exigences spécifiques d'une application ou d'un système. Il s'agit de créer et d'utiliser des fichiers journaux pour enregistrer les informations, les événements et les messages générés par le logiciel au cours de son fonctionnement.
Commencez avec IronPDF
Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.
Comment utiliser la journalisation personnalisée en C#
- Télécharger IronPDF depuis NuGet
- Régler le Mode d'enregistrement à LoggingModes.Custom
- Attribuer le Enregistreur personnalisé à votre objet logger personnalisé
- Tous les messages d'enregistrement seront transmis à l'enregistreur personnalisé
- Éditer les messages du journal pour visualiser les journaux
Exemple d'enregistrement personnalisé
Pour utiliser la fonction de journalisation personnalisée, remplacez la propriété LoggingMode par LoggingModes.Custom. Ensuite, attribuez la propriété CustomLogger à la classe de logger personnalisé que vous avez créée.
: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")
Les journaux d'IronPDF seront dirigés vers l'objet logger personnalisé. Les messages resteront identiques à ceux du logger IronPDF ; ils seront simplement transmis à l'enregistreur personnalisé. La manière dont l'enregistreur personnalisé gère les messages est déterminée par le concepteur de l'enregistreur personnalisé. Prenons l'exemple de la classe de logger personnalisée suivante.
: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
Dans ce cas, j'ai fait précéder les messages du journal d'informations supplémentaires.