Jak korzystać z niestandardowego logowania w języku C#

How to use Custom Logging in C

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

Niestandardowe logowanie w C# pozwala na wdrożenie dostosowanego systemu logowania, który rejestruje zdarzenia i komunikaty specyficzne dla aplikacji. Dzięki IronPDF możesz przekierować wszystkie logi przetwarzania PDF do swojego niestandardowego loggera, ustawiając LoggingMode na Custom i przypisując implementację loggera. Ta funkcja pozwala na zintegrowanie szczegółowych dzienników IronPDF z istniejącą infrastrukturą logowania, niezależnie czy używasz NLog, Serilog, log4net czy niestandardowego rozwiązania.

Niestandardowe logowanie jest wartościowe, gdy potrzebujesz centralizować dzienniki z wielu komponentów, stosować niestandardowe formatowanie, filtrować według poziomów ważności lub kierować dzienniki do określonych miejsc docelowych, takich jak pliki, bazy danych lub usługi monitorowania. Wdrażając niestandardowe logowanie z IronPDF, zyskujesz pełną kontrolę nad tym, jak zdarzenia generowania i przetwarzania PDF są śledzone w aplikacji.

Szybki start: Wdrażanie niestandardowego logowania z IronPDF

Rozpocznij niestandardowe logowanie w C# z IronPDF. Ten przewodnik pokazuje, jak ustawić LoggingMode na Custom i połączyć go z klasą logger. Przekieruj komunikaty IronPDF do swojego niestandardowego loggera, aby monitorować i zarządzać dziennikami aplikacji. Konfiguracja jest prosta i poprawia możliwości logowania aplikacji. Aby uzyskać kompleksowy przegląd funkcji IronPDF, zobacz nasz Przewodnik Szybkiego Startu.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom;
    IronSoftware.Logger.CustomLogger = new MyCustomLogger();
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak wdrożyć przykład niestandardowego logowania?

Aby użyć niestandardowego logowania, zmień właściwość LoggingMode na LoggingModes.Custom. Następnie przypisz właściwość CustomLogger do swojej niestandardowej klasy loggera. To zapewnia elastyczność integracji z różnymi frameworkami logowania i utrzymuje spójne wzorce logowania w aplikacji.

Wdrażanie wymaga minimalnej konfiguracji. Po skonfigurowaniu, wszystkie operacje IronPDF — w tym konwersja HTML na PDF, manipulacja i renderowanie PDF — automatycznie wysyłają swoje komunikaty dziennika przez niestandardowy logger. Ta integracja zapewnia uchwycenie ważnych informacji o operacjach przetwarzania PDF.

Dłączego należy używać niestandardowego logowania z IronPDF?

: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

Dzienniki IronPDF będą kierowane do obiektu niestandardowego loggera. Komunikaty pozostają identyczne do tych w loggerze IronPDF; są przekazywane do niestandardowego loggera. Implementacja niestandardowego loggera określa, jak obsługiwać komunikaty. Rozważ poniższy przykład klasy niestandardowego loggera.

Niestandardowe logowanie oferuje wiele zalet dla aplikacji produkcyjnych:

  • Centralne zarządzanie dziennikami: Zintegruj dzienniki IronPDF z istniejącą infrastrukturą logowania
  • Ulepszone debugowanie: Rejestruj szczegółowe informacje o operacjach na plikach PDF w celu rozwiązywania problemów
  • Monitorowanie wydajności: śledzenie czasu renderowania i wykorzystania zasobów
  • Śledzenie błędów: automatyczne wykrywanie i zgłaszanie błędów podczas generowania plików PDF
  • Zgodność z przepisami: Prowadzenie ścieżek audytu dla generowania dokumentów w branżach podlegających regulacjom

W przypadku aplikacji wymagających przetwarzania asynchronicznego niestandardowe logowanie pomaga śledzić równoczesne operacje na plikach PDF i identyfikować potencjalne wąskie gardła.

Jak wygląda niestandardowa klasa loggera?

: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

Ta implementacja jest zgodna ze standardowym interfejsem Microsoft.Extensions.Logging.ILogger, dzięki czemu jest kompatybilna z ekosystemem logowania .NET. Klasa logger zawiera:

  • Nazwa kategorii: Pomaga zidentyfikować źródło komunikatów dziennika
  • Filtrowanie poziomu logów: Kontroluj, które poziomy ważności mają być rejestrowane
  • Elastyczne wyjście: kieruj logi do dowolnego miejsca docelowego (konsola, plik, baza danych itp.)
  • Obsługa wyjątków: Prawidłowe formatowanie i rejestrowanie szczegółów wyjątków
  • Zarządzanie stanem: Obsługa strukturalnego logowania z BeginScope

W przypadku zaawansowanych scenariuszy warto zapoznać się z opcjami renderowania, które mają wpływ na wynik logowania, zwłaszcza podczas złożonych konwersji HTML lub pracy z silnikiem renderującym Chrome.

Jak wygląda niestandardowy wynik logowania?

W tym przykładzie komunikaty dziennika są poprzedzone dodatkowymi informacjami.

Konsola debugowania Visual Studio pokazująca logi wdrożeniowe IronPDF z inicjalizacją klienta Chrome i ładowaniem biblioteki

Wynik wyświetlony w konsoli pokazuje, w jaki sposób niestandardowe logowanie zapewnia szczegółowy wgląd w wewnętrzne operacje IronPDF. Możesz zobaczyć:

  • Kroki inicjalizacji klienta Chrome
  • Tworzenie kandydatów do wdrożenia
  • Sekwencje ładowania bibliotek natywnych
  • Potwierdzenia pomyślnego wdrożenia komponentów

Ten poziom szczegółowości jest nieoceniony podczas debugowania problemów związanych z generowaniem plików PDF lub optymalizacji wydajności. Strukturalny format ułatwia programowe analizowanie logów lub integrację z narzędziami do analizy logów.

Najlepsze praktyki dotyczące wdrażania niestandardowego logowania

Podczas wdrażania niestandardowego logowania za pomocą IronPDF należy wziąć pod uwagę następujące najlepsze praktyki:

  1. Używaj odpowiednich poziomów logowania: Skonfiguruj swój logger tak, aby rejestrował odpowiedni poziom szczegółowości bez przeciążania pamięci logów
  2. Uwzględnij informacje kontekstowe: Dodaj identyfikatory żądań, informacje o użytkowniku lub szczegóły transakcji, aby skorelować operacje na plikach PDF
  3. Postępuj ostrożnie z danymi wrażliwymi: upewnij się, że Twój logger nie ujawnia poufnych informacji zawartych w plikach PDF
  4. Monitorowanie wydajności: Śledź czasy generowania plików PDF, aby zidentyfikować możliwości optymalizacji
  5. Skonfiguruj alerty: Skonfiguruj powiadomienia o krytycznych błędach lub spadku wydajności

W przypadku wdrożeń produkcyjnych, zwłaszcza przy użyciu kluczy licencyjnych, prawidłowe logowanie zapewnia płynne działanie i szybkie rozwiązywanie problemów.

Rozwiązywanie typowych problemów związanych z logowaniem

Jeśli napotkasz problemy z niestandardowym logowaniem:

  • Sprawdź, czy Twój logger poprawnie implementuje interfejs ILogger
  • Sprawdź, czy przed wykonaniem jakichkolwiek operacji IronPDF ustawiono LoggingMode
  • Upewnij się, że Twój rejestrator jest bezpieczny dla wątków w przypadku operacji wykonywanych jednocześnie
  • Sprawdź uprawnienia do dziennika, jeśli zapisujesz do plików lub systemów zewnętrznych

Aby uzyskać dodatkowe zasoby dotyczące rozwiązywania problemów, zapoznaj się z naszym przewodnikiem dotyczącym rozwiązywania problemów lub przejrzyj Dokumentację API, aby uzyskać szczegółowe informacje na temat właściwości i metod rejestrowania.

Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Zapoznaj się z naszą stroną z samouczkami tutaj: Dodatkowe funkcje

Często Zadawane Pytania

Czym jest niestandardowe logowanie w C# i jak działa z przetwarzaniem PDF?

Niestandardowe logowanie w C# z IronPDF pozwala wprowadzić dostosowany system logowania, który przechwytuje zdarzenia i wiadomości przetwarzania PDF. Ustawiając LoggingMode na Custom i przypisując swoją implementację loggera, IronPDF przekierowuje wszystkie logi generacji i manipulacji PDF do Twojego loggera niestandardowego, umożliwiając integrację z istniejącą infrastrukturą logowania, jak NLog, Serilog lub log4net.

Jak wlaczyc niestandardowe logowanie dla operacji PDF?

Aby wlaczyc niestandardowe logowanie w IronPDF, ustaw IronSoftware.Logger.LoggingMode na LoggingModes.Custom i przypisz swoja niestandardowa klase loggera do IronSoftware.Logger.CustomLogger. Po skonfigurowaniu wszystkie operacje IronPDF, w tym konwersja HTML do PDF i manipulacja PDF, beda automatycznie przesylac swoje komunikaty dziennika przez twojego niestandardowego loggera.

Jakie sa korzysci z implementacji niestandardowego logowania dla generowania PDF?

Niestandardowe logowanie w IronPDF zapewnia pelna kontrole nad tym, jak sledzone sa zdarzenia przetwarzania PDF. Umozliwia centralizacje dziennikow z wielu komponentow, stosowanie niestandardowego formatowania, filtrowanie wedlug poziomow waznosci i przekierowywanie dziennikow do okreslonych miejsc docelowych, takich jak pliki, bazy danych czy uslugi monitorujace, co zwieksza mozliwosci logowania aplikacji.

Czy moge zintegrowac dzienniki przetwarzania PDF z istniejacymi strukturami logowania?

Tak, funkcja niestandardowego logowania w IronPDF bezproblemowo integruje sie z popularnymi strukturami logowania, takimi jak NLog, Serilog, log4net lub dowolne rozwiazanie niestandardowe. Zapewnia to spojnosc wzorcow logowania w calej aplikacji, przy jednoczesnym uchwyceniu kluczowych informacji o operacjach przetwarzania PDF.

Jaki jest minimalny przeplyw pracy do implementacji niestandardowego logowania?

Minimalny przeplyw pracy obejmuje 5 krokow: Pobrac IronPDF z NuGet, ustawic LoggingMode na LoggingModes.Custom, przypisac CustomLogger do swojego niestandardowego obiektu loggera, a wszystkie komunikaty dziennika beda przekazywane do twojego niestandardowego loggera. Na koniec wydrukuj komunikaty dziennika, aby zobaczyc dzienniki operacji IronPDF.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,926,724 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.