Zum Fußzeileninhalt springen
.NET HILFE

Serilog .NET (Wie es für Entwickler funktioniert)

Einführung in die Konfiguration von Serilog Logger und das strukturierte Diagnoseprotokollierungsverhalten in .NET-Anwendungen

In .NET Core ist eine effiziente, strukturierte Serilog-Protokollierungskonfiguration entscheidend für die Diagnose und das Verständnis des Anwendungsverhaltens oder von Protokollereignissen. Unter den verschiedenen Protokollierungsbibliotheken zeichnet sich Serilog durch seine robusten Fähigkeiten zur strukturierten Protokollierungsmeldung aus. Im Gegensatz zur traditionellen Protokollierung werden Protokollmeldungen in strukturierten Daten formatiert, was die Analyse erleichtert. Dieser Artikel untersucht, wie Serilog den Protokollierungsprozess in .NET 6-Anwendungen verbessert und sicherstellt, dass jedes Protokollereignis nicht nur eine Zeichenkette, sondern ein strukturiertes, abfragbares Objekt ist. Dieser Ansatz verwandelt Protokollnachrichten in einen strategischen Wert und ermöglicht eine effektivere Überwachung und Analyse.

Verstehen Sie die Funktionen von Serilog

Serilog ist eine leistungsstarke und flexible Protokollierungsbibliothek für .NET-Anwendungen. Es bietet verschiedene Funktionen, die das Protokollierungserlebnis verbessern und die Diagnose und Analyse des Anwendungsverhaltens erleichtern. In diesem Abschnitt werden einige der Hauptfunktionen vorgestellt, die Serilog bietet.

Strukturierte Protokollierung

Eine der herausragenden Funktionen von Serilog ist die Unterstützung der strukturierten Protokollierung. Anstatt einfach nur Nachrichten als einfachen Text zu protokollieren, ermöglicht Serilog das Protokollieren strukturierter Daten. Diese strukturierten Daten können ein JSON-Objekt, ein Wörterbuch oder ein anderer serialisierbarer Typ sein. Durch das Protokollieren strukturierter Daten können Sie Protokollierungsereignisse problemlos mit Tools wie Elasticsearch oder Splunk analysieren und abfragen.

Flexible Konfiguration

Serilog bietet flexible Konfigurationsoptionen, mit denen Sie das Protokollierungsverhalten entsprechend den Anforderungen Ihrer Anwendung anpassen können. Sie können Serilog programmgesteuert oder über Konfigurationsdateien konfigurieren. Diese Flexibilität ermöglicht es Ihnen, das Protokollierungsverhalten zur Laufzeit anzupassen, ohne dass Anwendungs-Neustarts erforderlich sind.

Sink-Bibliotheken

Serilog bietet verschiedene Sink-Bibliotheken, die es Ihnen ermöglichen, Protokollierungsereignisse an unterschiedliche Ziele zu senden. Einige der beliebten Sink-Bibliotheken sind:

  • Serilog.Sinks.Console: Sendet Protokollierungsereignisse an die Konsole.
  • Serilog.Sinks.File: Schreibt Protokollierungsereignisse in Textdateien.
  • Serilog.Sinks.Seq: Sendet Protokollierungsereignisse an Seq, einen strukturierten Protokollserver.
  • Serilog.Sinks.Elasticsearch: Sendet Protokollierungsereignisse an Elasticsearch.

Diese Sink-Bibliotheken erleichtern es, Serilog mit verschiedenen Protokollierungsinfrastrukturen und -tools zu integrieren.

Anreicherung der Protokollierung

Protokollanreicherung ist eine Funktion, die es ermöglicht, Ihren Protokollierungsereignissen zusätzliche kontextuelle Informationen hinzuzufügen. Serilog bietet verschiedene Enricher, die automatisch Informationen wie Zeitstempel, Thread-ID oder Protokollebene hinzufügen können. Sie können auch benutzerdefinierte Enricher erstellen, um anwendungsspezifische Informationen hinzuzufügen.

Log-Filterung

Serilog ermöglicht es Ihnen, Protokollierungsereignisse anhand verschiedener Kriterien zu filtern. Sie können Filter konfigurieren, um Protokollierungsereignisse basierend auf Protokollebene, Eigenschaftswerten oder anderen Bedingungen auszuschließen oder einzubeziehen. Diese Filterfunktion ermöglicht es Ihnen, sich auf die Protokollierungsereignisse zu konzentrieren, die für Ihre Analyse oder Fehlersuche am relevantesten sind.

Indem Sie diese Funktionen verstehen und nutzen, können Sie die Leistungsfähigkeit von Serilog auch nutzen, um Ihre Protokollierungsfähigkeiten zu verbessern und wertvolle Einblicke in das Verhalten Ihrer Anwendung zu gewinnen.

Strukturierte Protokollierung: Eine Kernfunktion

Die primäre Stärke von Serilog liegt in der Umwandlung von Protokollnachrichten in strukturierte Daten. Im Gegensatz zu anderen Protokollierungsbibliotheken, die einfachen Text ausgeben, erzeugt Serilog Protokolle im strukturierten JSON-Format, was das Parsen und Abfragen von Protokolldaten vereinfacht. Diese Fähigkeit ist entscheidend für moderne Anwendungen, bei denen Protokollanalyse und -überwachung integraler Bestandteil der operativen Intelligenz sind. Strukturierte Protokolle sind besonders vorteilhaft, wenn eine Protokollmeldung in Systeme wie den ELK (Elasticsearch, Logstash, Kibana)-Stack für erweiterte Analysen aufgenommen wird.

Reichhaltige Protokoll-Ereignis-Details

Serilog bereichert Protokollereignisse mit kontextuellen Informationen und bietet einen umfassenden Überblick darüber, was in einer Anwendung geschieht. Jedes Protokollereignis kann viele Details über eine einfache Protokollnachricht hinaus enthalten, einschließlich Zeitstempel, Protokollebenen, Ausnahmeinformationen und benutzerdefinierter Eigenschaften. Dadurch ist Serilog anderen Protokollierungsbibliotheken in Bezug auf die Tiefe und Klarheit des Protokolls überlegen und bietet Entwicklern wichtige Einblicke in das Verhalten und die Leistung der Anwendung.

Implementierung von Serilog in ASP.NET Core

Um Serilog in einer .NET 6 ASP.NET Core Anwendung zu integrieren, beginnen Sie mit der Konfiguration von Serilog über die appsettings.json-Datei oder den Serilog-Konfigurationsabschnitt. Diese Konfiguration bestimmt, wie, wo und welche Protokolldaten erfasst werden.

Über die Konfigurationsdatei

Verwenden Sie die JSON-Konfigurationsdatei, um Protokollebenen, Ausgabestellen (wie Protokolldateien oder Konsole) und das Protokollausgabeformat zu definieren. Der Konfigurationsdateiansatz bietet die Flexibilität, das Protokollierungsverhalten zu ändern, ohne den Code zu modifizieren. Dies geschieht durch die Angabe von Einstellungen in der appsettings.json-Datei, die es Ihnen ermöglicht, Ihre Protokollausgabe an verschiedene Sinks zu leiten, wie z.B. eine Konsole, eine Datei oder sogar cloudbasierte Protokollverwaltungsdienste.

Programmatisch im Code

Alternativ konfigurieren Sie Serilog direkt im Code mit der LoggerConfiguration-Klasse. Diese Methode wird häufig verwendet, um komplexere Protokollierunsszenarien einzurichten, wie z.B. dynamische Protokollebenen oder benutzerdefinierte Protokollsinks. Zum Beispiel können Sie eine rollierende Protokolldatei konfigurieren, die zu bestimmten Intervallen oder beim Erreichen einer bestimmten Größe eine neue Protokolldatei erstellt, um eine effiziente Verwaltung von Protokolldateien sicherzustellen.

// Create a logger instance with a rolling log file that creates a new log file every day
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day) 
    .CreateLogger();
// Create a logger instance with a rolling log file that creates a new log file every day
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day) 
    .CreateLogger();
' Create a logger instance with a rolling log file that creates a new log file every day
Dim logger = (New LoggerConfiguration()).WriteTo.File("logs/myapp.txt", rollingInterval:= RollingInterval.Day).CreateLogger()
$vbLabelText   $csharpLabel

Integration mit ASP.NET Core

Die Integration von Serilog mit ASP.NET Core beinhaltet das Hinzufügen des Serilog-Pakets über die Paket-Manager-Konsole und das Einrichten des Loggers in der Program.cs-Datei. Die var builder- und var app-Anweisungen in .NET 6 binden Serilog nahtlos in die Protokollierungsinfrastruktur der Anwendung ein. Dieser Prozess ersetzt den Standardlogger durch Serilog und stellt sicher, dass alle Protokollnachrichten durch die Serilog-Pipeline verarbeitet werden.

var builder = WebApplication.CreateBuilder(args);

// Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));

var app = builder.Build();
var builder = WebApplication.CreateBuilder(args);

// Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));

var app = builder.Build();
Dim builder = WebApplication.CreateBuilder(args)

' Configure Serilog to use settings from appsettings.json and write logs to the console
builder.Host.UseSerilog(Function(ctx, lc) lc.WriteTo.Console().ReadFrom.Configuration(ctx.Configuration))

Dim app = builder.Build()
$vbLabelText   $csharpLabel

Integration von Iron Software Suite mit Serilog in ASP.NET Core

Die Iron Software Suite bietet eine Sammlung von C#-Bibliotheken, die die Protokollierungsfähigkeiten innerhalb einer .NET 6-Anwendung erheblich verbessern können, wenn Serilog verwendet wird. Dieses Suite umfasst verschiedene Tools wie IronPDF, IronOCR, IronXL, IronZIP, IronQR, IronBarcode und IronWebScraper, die einzigartige Funktionen bieten, die in eine ASP.NET Core-Anwendung integriert werden können, um deren Protokollierungs- und Datenverarbeitungsfähigkeiten zu verbessern.

Um die Iron Software Suite mit Serilog in einer ASP.NET Core-Anwendung zu integrieren, befolgen Sie diese allgemeinen Schritte:

  1. Installieren Sie die erforderlichen Iron Software Suite-Pakete mit NuGet oder der Paket-Manager-Konsole.
  2. Konfigurieren Sie Serilog mit den gewünschten Sink-Bibliotheken, wie z.B. Serilog.Sinks.File für Protokolldateien oder Serilog.Sinks.Console für Konsolenausgabe.
  3. Verwenden Sie die Bibliotheken der Iron Software Suite im Code Ihrer Anwendung, um deren Funktionen zu nutzen und den Protokollierungsprozess zu verbessern. Dies kann Aufgaben umfassen, wie das Erstellen von PDFs, das Lesen von Barcodes oder das Scrapen von Webinhalten.

Indem Sie die Iron Software Suite mit Serilog integrieren, können Sie die Protokollierungsfähigkeiten Ihrer ASP.NET Core-Anwendung erweitern und die zusätzlichen Funktionen dieser Bibliotheken nutzen.

IronPDF

IronPDF ermöglicht das Erstellen, Lesen und Bearbeiten von PDFs innerhalb von .NET-Anwendungen. Dies kann besonders nützlich sein, wenn es mit Serilog kombiniert wird, um PDF-Berichte über Protokolldaten zu erstellen, die eine einfache Verteilung und Ansicht von Protokollinformationen in einem standardisierten Format ermöglichen.

Serilog .NET (Wie es für Entwickler funktioniert): Abbildung 1 - IronPDF

IronOCR

IronOCR ist eine Software zur optischen Zeichenerkennung (OCR), die Bilder in Text in 125 Sprachen übersetzen kann. Diese Funktion kann in Protokollierungsszenarien genutzt werden, in denen Textdaten aus Bildern oder gescannten Dokumenten extrahiert werden müssen, um die Protokolldaten mit mehr kontextuellen Informationen anzureichern.

Serilog .NET (Wie es für Entwickler funktioniert): Abbildung 2 - IronOCR

IronXL

IronXL bietet Funktionalitäten zur Arbeit mit Excel, ohne dass Office Interop erforderlich ist. Dies kann besonders für Protokollierungszwecke von Vorteil sein, da Protokolldaten für weitere Analysen und Berichte in Excel exportiert werden können, was eine vertraute Oberfläche für die Datenmanipulation und -visualisierung bietet.

Serilog .NET (Wie es für Entwickler funktioniert): Abbildung 3 - IronXL

IronBarcode

IronBarcode erleichtert das Lesen und Schreiben von QR-Codes und Barcodes. Diese Bibliothek kann kodierte Informationen in Protokolldateien einbetten oder extrahieren, was die Sicherheit und Rückverfolgbarkeit der protokollierten Informationen verbessert.

Serilog .NET (Wie es für Entwickler funktioniert): Abbildung 4 - IronBarcode

Abschluss

Die Integration der Iron Software Suite mit Serilog in ASP.NET Core-Anwendungen bereichert nicht nur den Protokollierungsprozess, sondern fügt auch eine Schicht von Vielseitigkeit bei der Handhabung, Darstellung und Analyse von Protokolldaten hinzu. Ob es darum geht, PDF-Berichte zu erstellen, bildbasierte Protokolle zu verarbeiten, Excel-Daten zu behandeln, Protokolldateigrößen zu verwalten, Protokollinformationen zu sichern oder Webinhalte zu scrapen, die Kombination von Serilog mit der Iron Software Suite eröffnet eine Vielzahl von Möglichkeiten für fortgeschrittene Protokollierung und Datenverarbeitung in .NET 6-Umgebungen.

Die Iron Software Suite bietet einen kostenlosen Test von Iron Software C#-Bibliotheken, der Entwicklern eine hervorragende Gelegenheit bietet, ihre Funktionen und Fähigkeiten zur Verbesserung ihrer ASP.NET Core-Anwendungen zu erkunden, insbesondere wenn sie mit Serilog für erweiterte Protokollierungs- und Datenverarbeitungsfunktionen integriert sind.

Häufig gestellte Fragen

Wie verbessert Serilog das Logging in .NET-Anwendungen?

Serilog verbessert das Logging in .NET-Anwendungen, indem es Logereignisse in strukturierte, abfragbare Objekte umwandelt, was im Vergleich zum traditionellen Plain-Text-Logging eine bessere Diagnose und Analyse ermöglicht.

Was sind die Vorteile der Verwendung von strukturiertem Logging mit Serilog?

Strukturiertes Logging mit Serilog bietet den Vorteil einer einfacheren Protokolldatenanalyse und -abfrage, was nützlich für die Analyse mit Tools wie Elasticsearch ist und die operative Intelligenz und Überwachung verbessert.

Wie kann ich Serilog in einer .NET 6-Anwendung konfigurieren?

In einer .NET 6-Anwendung kann Serilog mithilfe der `LoggerConfiguration`-Klasse oder über Konfigurationsdateien wie `appsettings.json` konfiguriert werden, wodurch flexible Anpassungen des Logverhaltens ohne Codeänderungen möglich sind.

Welche Integrationsoptionen bietet Serilog für verschiedene Logging-Ziele?

Serilog bietet verschiedene Sink-Bibliotheken zur Integration, die es ermöglichen, Logereignisse an verschiedene Ziele zu senden, wie Konsolen, Textdateien oder Server wie Elasticsearch oder Seq.

Welche Rolle spielen Enricher im Serilog-Logging?

Enricher in Serilog fügen Logereignissen kontextbezogene Informationen hinzu, wie z.B. Zeitstempel und Log-Level, und es können benutzerdefinierte Enricher erstellt werden, um spezifische Anwendungsdaten einzuschließen, die den Informationswert der Protokolle erhöhen.

Kann Serilog mit anderen Bibliotheken für erweiterte Funktionalitäten kombiniert werden?

Ja, Serilog kann mit Bibliotheken wie IronPDF, IronOCR und IronXL kombiniert werden, die Funktionen wie PDF-Generierung, OCR-Verarbeitung und Excel-Manipulation bieten, wodurch der Logging-Prozess und die Datenverarbeitung in .NET-Anwendungen bereichert werden.

Wie kann ich PDF-Berichte von Protokolldaten mit .NET erstellen?

Sie können PDF-Berichte von Protokolldaten in .NET mithilfe von Bibliotheken wie IronPDF erstellen, die PDFs erstellen, lesen und bearbeiten können, was die Integration mit Log-Systemen ermöglicht, um detaillierte Protokollberichte zu produzieren.

Ist es möglich, Protokolldaten für die Analyse in Excel zu exportieren?

Ja, mithilfe von Bibliotheken wie IronXL können Sie Excel-Dateien ohne die Notwendigkeit von Office Interop manipulieren, wodurch Protokolldaten zum Zwecke der weiteren Analyse und Berichterstellung in .NET-Anwendungen nach Excel exportiert werden können.

Welche Vorteile bieten Iron Software-Bibliotheken für Log-Systeme wie Serilog?

Iron Software-Bibliotheken verbessern Log-Systeme wie Serilog, indem sie zusätzliche Funktionen wie die PDF-Erstellung, OCR und Excel-Dateimanipulation bereitstellen, die die Datenverarbeitung und Berichterstellung in .NET-Umgebungen bereichern.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen