Wie man die benutzerdefinierte Protokollierung in C# verwendet;

This article was translated from English: Does it need improvement?
Translated
View the article in English

von Chaknith Bin

Unter Custom Logging versteht man die Implementierung eines Protokollierungssystems, das auf die spezifischen Bedürfnisse und Anforderungen einer Anwendung oder eines Systems zugeschnitten ist. Sie umfasst die Erstellung und Verwendung von Protokolldateien zur Aufzeichnung von Informationen, Ereignissen und Meldungen, die von der Software während ihres Betriebs erzeugt werden.

Erste Schritte mit IronPDF

Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer



Beispiel für benutzerdefinierte Protokollierung

Um die benutzerdefinierte Protokollierungsfunktion zu nutzen, ändern Sie die Eigenschaft LoggingMode in LoggingModes.Custom. Weisen Sie anschließend die Eigenschaft CustomLogger der von Ihnen erstellten benutzerdefinierten Logger-Klasse zu.

: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#

Die IronPDF-Protokolle werden an das benutzerdefinierte Logger-Objekt weitergeleitet. Die Meldungen bleiben identisch mit denen des IronPDF-Loggers; werden sie einfach an den benutzerdefinierten Logger weitergeleitet. Wie der benutzerdefinierte Logger die Meldungen verwaltet, wird vom Designer des benutzerdefinierten Loggers festgelegt. Nehmen wir die folgende benutzerdefinierte Logger-Klasse als Beispiel.

: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
VB   C#

In diesem Fall habe ich den Protokollmeldungen zusätzliche Informationen vorangestellt.

Fenster der Konsole
Chaknith related to Beispiel für benutzerdefinierte Protokollierung

Chaknith Bin

Software-Ingenieur

Chaknith ist der Sherlock Holmes der Entwickler. Zum ersten Mal kam ihm der Gedanke, dass er eine Zukunft in der Softwareentwicklung haben könnte, als er zum Spaß an Code Challenges teilnahm. Sein Schwerpunkt liegt auf IronXL und IronBarcode, aber er ist stolz darauf, Kunden mit jedem Produkt zu helfen. Chaknith nutzt sein Wissen aus direkten Gesprächen mit Kunden, um die Produkte selbst weiter zu verbessern. Sein anekdotisches Feedback geht über Jira-Tickets hinaus und unterstützt die Produktentwicklung, die Dokumentation und das Marketing, um das Gesamterlebnis der Kunden zu verbessern.Wenn er nicht im Büro ist, lernt er über maschinelles Lernen, programmiert und wandert.