Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Protokollierung ist ein wesentlicher Bestandteil der Softwareentwicklung, insbesondere in Sprachen wie C#. Es hilft Entwicklern, Ereignisse zu verfolgen, die während der Ausführung eines Programms auftreten, und erleichtert so das Verständnis seines Verhaltens und die Diagnose von Problemen. Dieser Leitfaden behandelt alle Aspekte der C#-Protokollierung und IronPDFvon grundlegenden Konzepten bis hin zu fortgeschrittenen Protokollierungskonfigurationen und -werkzeugen. Es bietet ein umfassendes Verständnis und Kontrolle über die Protokollierungskonfiguration in Ihren Anwendungen.
Im Kern geht es bei der Protokollierung in C# um die Aufzeichnung von Informationen über die Software während der Ausführung. Diese Aufzeichnungen oder Protokollmeldungen werden in Protokolldateien oder anderen Medien gespeichert und können Daten wie Fehlermeldungen, Informationen über den Zustand der Software oder Debug-Meldungen enthalten. Der Zweck der Protokollierung besteht darin, Informationen über den Betrieb der Anwendung in einem dauerhaften Format zu erfassen. Diese Informationen sind von unschätzbarem Wert für die Fehlersuche, die Überwachung der Softwareleistung und um sicherzustellen, dass sich die Anwendung wie erwartet verhält. Dazu gehören Konfigurationsdatei, Protokollierungs-API, Protokollierungskonfiguration, strukturierte Protokolle und Protokollausnahmen.
Um mit der Protokollierung in C# zu beginnen, müssen Entwickler innerhalb ihrer Anwendung Protokollnachrichten schreiben. Dies geschieht durch die Verwendung eines Protokollierungsrahmens oder einer API. In C# ist eine beliebte Wahl die Schnittstelle ILogger von Microsoft, die im Namespace Microsoft.Extensions.Logging verfügbar ist. Diese Schnittstelle bietet eine einfache Möglichkeit, Daten auf verschiedenen Ebenen der Wichtigkeit zu protokollieren, die als Protokollebenen bezeichnet werden. Diese Stufen, einschließlich Information, Debug und Fehler, helfen dabei, die Protokollausgabe nach dem Schweregrad der aufgezeichneten Meldungen zu kategorisieren und zu filtern.
using Microsoft.Extensions.Logging;
public class Program
{
static void Main(string [] args)
{
ILogger logger = LoggerFactory.Create(builder =>
{
builder.AddConsole();
}).CreateLogger<Program>();
logger.LogInformation("This is an information log message");
logger.LogError("This is an error log message");
}
}
using Microsoft.Extensions.Logging;
public class Program
{
static void Main(string [] args)
{
ILogger logger = LoggerFactory.Create(builder =>
{
builder.AddConsole();
}).CreateLogger<Program>();
logger.LogInformation("This is an information log message");
logger.LogError("This is an error log message");
}
}
Imports Microsoft.Extensions.Logging
Public Class Program
Shared Sub Main(ByVal args() As String)
Dim logger As ILogger = LoggerFactory.Create(Sub(builder)
builder.AddConsole()
End Sub).CreateLogger<Program>()
logger.LogInformation("This is an information log message")
logger.LogError("This is an error log message")
End Sub
End Class
Im obigen Beispiel ist das Objekt ILogger mit dem Namen logger so konfiguriert, dass es Protokollmeldungen auf der Konsole ausgibt. Diese Einrichtung ist einfach, aber grundlegend, um zu verstehen, wie Protokollmeldungen erzeugt und angezeigt werden.
In einer realen Anwendung müssen Sie häufig Protokollmeldungen in einer Datei oder einem anderen Speichersystem zur späteren Überprüfung speichern. Hier kommen die Logging-Anbieter ins Spiel. Provider sind Komponenten des Logging-Frameworks, die die Ausgabe von Logdaten an verschiedene Ziele wie Dateien, Datenbanken oder externe Dienste übernehmen.
Um beispielsweise einen Logger so zu konfigurieren, dass er Meldungen in eine Datei schreibt, können Sie einen dateibasierten Anbieter wie FileLoggerProvider verwenden. Dazu muss die Konfigurationsdatei der Anwendung geändert werden (häufig appsettings.json in .NET-Anwendungen) um Details wie den Pfad der Protokolldatei und die minimale Protokollstufe anzugeben.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning"
},
"File": {
"Path": "logs/myapp.log"
}
}
}
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning"
},
"File": {
"Path": "logs/myapp.log"
}
}
}
"Logging":
If True Then
"LogLevel":
If True Then
"Default": "Information", "Microsoft": "Warning"
End If
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' , "File":
' {
' "Path": "logs/myapp.log"
' }
End If
Die Konfiguration legt fest, dass alle Standardprotokolle auf der Ebene "Information" erfolgen sollen, die Microsoft-Bibliotheken jedoch nur Warnungen und mehr protokollieren sollen. Außerdem wird die Protokollierungsausgabe in eine Protokolldatei namens myapp.log im Verzeichnis logs geleitet.
C# unterstützt nicht nur einfache Log-Meldungen, sondern auch strukturierte Logs, die anstelle von einfachem Text auch strukturierte Daten enthalten können. Die strukturierte Protokollierung erleichtert die Suche und Analyse von Protokolldaten, da jede Kontextinformation in einem eigenen Feld gespeichert wird.
logger.LogDebug("Processing order {OrderId} at {Timestamp}", orderId, DateTime.UtcNow);
logger.LogDebug("Processing order {OrderId} at {Timestamp}", orderId, DateTime.UtcNow);
logger.LogDebug("Processing order {OrderId} at {Timestamp}", orderId, DateTime.UtcNow)
In diesem Beispiel für ein strukturiertes Protokoll sind OrderId und Timestamp Platzhalter in der Nachrichtenvorlage, die mit den Werten von orderId bzw. DateTime.UtcNow gefüllt werden. Dies ist leistungsfähiger als die herkömmliche Protokollierung, da es eine einfachere Abfrage und Manipulation von Protokolldaten auf der Grundlage bestimmter Felder in jedem Protokolleintrag ermöglicht.
Die C#-Protokollierung kann erweitert werden, um externe Systeme wie SQL Server oder Windows Event Log zu integrieren, wodurch die Verwaltung und Analyse von Protokolldaten verbessert wird. Durch die Verwendung von spezialisierten Protokollierungsanbietern können Protokollmeldungen an diese Systeme weitergeleitet werden, wodurch robustere Funktionen für die Fehlerüberwachung und -behebung bereitgestellt werden.
builder.AddEventLog(new EventLogSettings
{
SourceName = "MyApplication"
});
builder.AddEventLog(new EventLogSettings
{
SourceName = "MyApplication"
});
builder.AddEventLog(New EventLogSettings With {.SourceName = "MyApplication"})
Dieser Konfigurationsausschnitt leitet die Protokollausgabe in das Windows-Ereignisprotokoll unter dem Quellnamen "MyApplication". Dies ist besonders nützlich für Anwendungen, die auf Windows-Servern laufen, wo das Ereignisprotokoll ein zentrales Werkzeug zur Überwachung von Software- und Systemmeldungen ist.
IronPDF ist eine .NET PDF-Bibliothek, die es Entwicklern ermöglicht, PDFs zu erstellen, zu bearbeiten und zu rendern. Sie konvertiert HTML zu PDF was eine häufige Voraussetzung für die Erstellung von Berichten, Rechnungen und anderen Dokumenttypen aus Webinhalten ist. IronPDF bietet eine umfassende Reihe von Funktionen für verschiedene PDF-bezogene Aufgaben, einschließlich der Bearbeitung von Text und Bildern, der Sicherung von Dokumenten und sogar der Extraktion von Inhalten.
Die Kombination von IronPDF mit C# Logging kann die Fehlerbehandlung und das Debugging bei der Arbeit mit PDF-Dateien verbessern. Durch die Integration der Protokollierung können Sie den Prozess der PDF-Generierung verfolgen und alle auftretenden Probleme oder Ausnahmen erfassen. Diese Integration ist besonders nützlich in Szenarien, in denen die PDF-Generierung ein kritischer Teil der Anwendungsfunktionalität ist, z. B. bei der dynamischen Berichterstellung auf der Grundlage von Benutzerdaten.
Um IronPDF zusammen mit C# Logging zu verwenden, müssen Sie Logging-Aufrufe in Ihre PDF-Operationen einbauen. Das folgende Beispiel zeigt, wie Sie diese beiden Technologien in eine .NET-Anwendung integrieren können. In diesem Beispiel wird davon ausgegangen, dass Sie die Schnittstelle ILogger aus Microsoft.Extensions.Logging verwenden.
using IronPdf;
using Microsoft.Extensions.Logging;
using System;
public class PdfGenerator
{
private readonly ILogger _logger;
public PdfGenerator(ILogger<PdfGenerator> logger)
{
_logger = logger;
}
public void CreatePdfFromHtml(string htmlContent, string outputPath)
{
try
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs(outputPath);
_logger.LogInformation("PDF created successfully at {OutputPath}", outputPath);
}
catch (Exception ex)
{
_logger.LogError(ex, "Error creating PDF from HTML");
}
}
}
// Usage
public class Program
{
static void Main(string [] args)
{
License.LicenseKey = "License-Key";
ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddConsole(); // Works after adding the right package and using directive
});
ILogger<PdfGenerator> logger = loggerFactory.CreateLogger<PdfGenerator>(); // Correct type parameter
PdfGenerator pdfGenerator = new PdfGenerator(logger);
string htmlContent = "<h1>Hello, PDF!</h1><p>This is a simple PDF generated from HTML.</p>";
string outputPath = "output.pdf";
pdfGenerator.CreatePdfFromHtml(htmlContent, outputPath);
}
}
using IronPdf;
using Microsoft.Extensions.Logging;
using System;
public class PdfGenerator
{
private readonly ILogger _logger;
public PdfGenerator(ILogger<PdfGenerator> logger)
{
_logger = logger;
}
public void CreatePdfFromHtml(string htmlContent, string outputPath)
{
try
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs(outputPath);
_logger.LogInformation("PDF created successfully at {OutputPath}", outputPath);
}
catch (Exception ex)
{
_logger.LogError(ex, "Error creating PDF from HTML");
}
}
}
// Usage
public class Program
{
static void Main(string [] args)
{
License.LicenseKey = "License-Key";
ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddConsole(); // Works after adding the right package and using directive
});
ILogger<PdfGenerator> logger = loggerFactory.CreateLogger<PdfGenerator>(); // Correct type parameter
PdfGenerator pdfGenerator = new PdfGenerator(logger);
string htmlContent = "<h1>Hello, PDF!</h1><p>This is a simple PDF generated from HTML.</p>";
string outputPath = "output.pdf";
pdfGenerator.CreatePdfFromHtml(htmlContent, outputPath);
}
}
Imports IronPdf
Imports Microsoft.Extensions.Logging
Imports System
Public Class PdfGenerator
Private ReadOnly _logger As ILogger
Public Sub New(ByVal logger As ILogger(Of PdfGenerator))
_logger = logger
End Sub
Public Sub CreatePdfFromHtml(ByVal htmlContent As String, ByVal outputPath As String)
Try
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs(outputPath)
_logger.LogInformation("PDF created successfully at {OutputPath}", outputPath)
Catch ex As Exception
_logger.LogError(ex, "Error creating PDF from HTML")
End Try
End Sub
End Class
' Usage
Public Class Program
Shared Sub Main(ByVal args() As String)
License.LicenseKey = "License-Key"
Dim loggerFactory As ILoggerFactory = LoggerFactory.Create(Sub(builder)
builder.AddConsole() ' Works after adding the right package and using directive
End Sub)
Dim logger As ILogger(Of PdfGenerator) = loggerFactory.CreateLogger(Of PdfGenerator)() ' Correct type parameter
Dim pdfGenerator As New PdfGenerator(logger)
Dim htmlContent As String = "<h1>Hello, PDF!</h1><p>This is a simple PDF generated from HTML.</p>"
Dim outputPath As String = "output.pdf"
pdfGenerator.CreatePdfFromHtml(htmlContent, outputPath)
End Sub
End Class
Diese Einrichtung erleichtert nicht nur die Generierung von PDFs aus HTML, sondern stellt auch sicher, dass der Vorgang durch Protokolle gut dokumentiert wird, was die Wartung und Fehlersuche erleichtert. Die Integration der Protokollierung in IronPDF kann die Zuverlässigkeit und Nachvollziehbarkeit der PDF-Verarbeitungsfunktionen Ihrer Anwendung erheblich verbessern.
Die Protokollierung in C# ist eine flexible und leistungsstarke Methode, um detaillierte Informationen über den Betrieb Ihrer Anwendung zu erfassen. Durch die Verwendung verschiedener Protokollierungsebenen, die Konfiguration verschiedener Anbieter und die Implementierung einer strukturierten Protokollierung können Entwickler ein umfassendes Protokollierungssystem erstellen, das die Wartbarkeit und Fehlersuche in ihren Anwendungen verbessert.
IronPDF bietet eine kostenloser Test beginnt bei 749 Dollar.
9 .NET API-Produkte für Ihre Bürodokumente