How to use Custom Logging in C
Niestandardowe logowanie w C# pozwala na wdrożenie dostosowanego systemu logowania, który rejestruje zdarzenia i komunikaty specyficzne dla aplikacji. Dzięki IronPDF można przekierować wszystkie dzienniki przetwarzania PDF do 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 powiązać to z klasą loggera. 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.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom; IronSoftware.Logger.CustomLogger = new MyCustomLogger(); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz IronPDF z NuGet
- Ustaw właściwość
LoggingModenaLoggingModes.Custom - Przypisz właściwość
CustomLoggerdo swojego niestandardowego obiektu loggera - Wszystkie komunikaty dziennika będą przekazywane do niestandardowego loggera
- Wyświetl komunikaty dziennika, aby zobaczyć dzienniki
Jak wdrożyć przykład niestandardowego logowania?
Aby używać niestandardowego logowania, zmień właściwość LoggingMode na LoggingModes.Custom. Następnie przypisz właściwość CustomLogger do swojej klasy niestandardowego 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.
Dlaczego 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")
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
Implementacja ta podąża za standardowym interfejsem Microsoft.Extensions.Logging.ILogger, co czyni ją kompatybilną 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: Wsparcie dla 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.
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:
- 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
- Uwzględnij informacje kontekstowe: Dodaj identyfikatory żądań, informacje o użytkowniku lub szczegóły transakcji, aby skorelować operacje na plikach PDF
- Postępuj ostrożnie z danymi wrażliwymi: upewnij się, że Twój logger nie ujawnia poufnych informacji zawartych w plikach PDF
- Monitorowanie wydajności: Śledź czasy generowania plików PDF, aby zidentyfikować możliwości optymalizacji
- 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:
- Zweryfikuj, czy twój logger poprawnie implementuje interfejs
ILogger - Upewnij się, że
LoggingModejest ustawiony przed wszelkimi operacjami IronPDF - 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
What is custom logging in C# and how does it work with PDF processing?
Custom logging in C# with IronPDF allows you to implement a tailored logging system that captures PDF processing events and messages. By setting LoggingMode to Custom and assigning your logger implementation, IronPDF redirects all PDF generation and manipulation logs to your custom logger, enabling integration with existing logging infrastructure like NLog, Serilog, or log4net.
How do I enable custom logging for PDF operations?
To enable custom logging with IronPDF, set IronSoftware.Logger.LoggingMode to LoggingModes.Custom and assign your custom logger class to IronSoftware.Logger.CustomLogger. Once configured, all IronPDF operations including HTML to PDF conversion and PDF manipulation will automatically send their log messages through your custom logger.
What are the benefits of implementing custom logging for PDF generation?
Custom logging with IronPDF provides complete control over how PDF processing events are tracked. It enables you to centralize logs from multiple components, apply custom formatting, filter by severity levels, and route logs to specific destinations like files, databases, or monitoring services, enhancing your application's logging capabilities.
Can I integrate PDF processing logs with existing logging frameworks?
Yes, IronPDF's custom logging feature seamlessly integrates with popular logging frameworks including NLog, Serilog, log4net, or any custom logging solution. This ensures consistent logging patterns across your application while capturing critical information about PDF processing operations.
What is the minimal workflow to implement custom logging?
The minimal workflow involves 5 steps: Download IronPDF from NuGet, set LoggingMode to LoggingModes.Custom, assign CustomLogger to your custom logger object, and all log messages will be forwarded to your custom logger. Finally, output the log messages to view the logs from IronPDF operations.

