Wie man die benutzerdefinierte Protokollierung in C# verwendet;

Chaknith related to Wie man die benutzerdefinierte Protokollierung in C# verwendet;
Chaknith Bin
6. November 2023
Aktualisiert 19. Februar 2025
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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 LoggingMode-Eigenschaft zu LoggingModes.Custom. Anschließend weisen Sie die CustomLogger-Eigenschaft der benutzerdefinierten Logger-Klasse zu, die Sie erstellt haben.

: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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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

Konsolenfenster
Chaknith related to Beispiel für benutzerdefinierte Protokollierung
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.