.NET-HILFE

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

Veröffentlicht 27. Januar 2024
Teilen Sie:

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

In .NET Core ist eine effiziente strukturierte Serilog-Protokollierungskonfiguration für die Diagnose und das Verständnis des Anwendungsverhaltens oder der Protokollereignisse von größter Bedeutung. Unter den verschiedenen Logging-Bibliotheken zeichnet sich Serilog durch seine robusten Funktionen für strukturierte Logging-Nachrichten aus. Im Gegensatz zur herkömmlichen Protokollierung werden bei der strukturierten Protokollierung Meldungen auf Protokollebene als strukturierte Daten formatiert, wodurch sie leichter analysiert und abgefragt werden können. In diesem Artikel wird untersucht, wie Serilog den Protokollierungsprozess in .NET 6-Anwendungen verbessert und sicherstellt, dass jedes Protokollereignis nicht nur eine Zeichenfolge, sondern ein strukturiertes, abfragbares Objekt ist. Dieser Ansatz verwandelt Protokollnachrichten in ein strategisches Gut, das eine effektivere Überwachung und Analyse ermöglicht.

Die Funktionen von Serilog verstehen

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

Strukturierte Protokollierung

Eines der herausragenden Merkmale von Serilog ist die Unterstützung für strukturierte Protokollierung. Anstatt Nachrichten einfach nur als reinen Text zu protokollieren, können Sie mit Serilog auch strukturierte Daten protokollieren. Bei diesen strukturierten Daten kann es sich um ein JSON-Objekt, ein Wörterbuch oder einen anderen Typ handeln, der serialisiert werden kann. Durch die Protokollierung strukturierter Daten können Sie die Protokollereignisse mit Tools wie Elasticsearch oder Splunk leicht analysieren und abfragen.

Flexible Konfiguration

Serilog bietet flexible Konfigurationsoptionen, mit denen Sie das Protokollierungsverhalten an die Bedürfnisse Ihrer Anwendung anpassen können. Sie können Serilog programmatisch oder über Konfigurationsdateien konfigurieren. Diese Flexibilität ermöglicht es Ihnen, das Protokollierungsverhalten zur Laufzeit anzupassen, ohne dass ein Neustart der Anwendung erforderlich ist.

Spülbecken-Bibliotheken

Serilog bietet verschiedene Sink-Bibliotheken, mit denen Sie Protokollereignisse an verschiedene Ziele senden können. Zu den beliebten Spülbeckenbibliotheken gehören:

  • Serilog.Senken.Konsole: Sendet Protokollereignisse an die Konsole.
  • Serilog.Sinks.File: Schreibt die Log-Ereignisse in Textdateien.
  • Serilog.Sinks.Seq: Sendet Protokollereignisse an Seq, einen strukturierten Protokollserver.
  • Serilog.Senken.Elasticsearch: Sendet Protokollereignisse an Elasticsearch.

    Diese Sink-Bibliotheken erleichtern die Integration von Serilog mit verschiedenen Logging-Infrastrukturen und -Tools.

Anreicherung der Aufzeichnung

Die Protokollanreicherung ist eine Funktion, mit der Sie Ihren Protokollereignissen zusätzliche kontextbezogene Informationen hinzufügen können. Serilog bietet verschiedene Enrichers, die automatisch Informationen wie Zeitstempel, Thread-ID oder Log-Level zu Ihren Log-Events hinzufügen können. Sie können auch eigene Enrichers erstellen, um anwendungsspezifische Informationen hinzuzufügen.

Log-Filterung

Mit Serilog können Sie Protokollereignisse nach verschiedenen Kriterien filtern. Sie können Filter konfigurieren, um Protokollereignisse auf der Grundlage von Protokollebene, Eigenschaftswerten oder einer anderen Bedingung auszuschließen oder einzuschließen. Diese Filterfunktion ermöglicht es Ihnen, sich auf die Protokollereignisse zu konzentrieren, die für Ihre Analyse oder Fehlersuche am wichtigsten sind.

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

Strukturierte Protokollierung: Ein Hauptmerkmal

Die Hauptstärke von Serilog liegt in der Umwandlung von Protokollnachrichten in strukturierte Daten. Im Gegensatz zu anderen Protokollierungsbibliotheken, die reinen Text ausgeben, erzeugt Serilog Protokolle in einem strukturierten JSON-Format, was das Parsen und Abfragen von Protokolldaten vereinfacht. Diese Fähigkeit ist von entscheidender Bedeutung für moderne Anwendungen, bei denen die Analyse und Überwachung von Protokollen ein wesentlicher Bestandteil der operativen Intelligenz ist. Strukturierte Protokolle sind besonders vorteilhaft, wenn eine Protokollnachricht in Systeme wie das ELK-System aufgenommen wird (Elasticsearch, Logstash, Kibana) stack für erweiterte Analysen.

Reichhaltige Log-Ereignis-Details

Serilog reichert Protokollereignisse mit kontextbezogenen Informationen an und bietet so einen umfassenden Überblick über das Geschehen innerhalb einer Anwendung. Jedes Protokollereignis kann viele Details enthalten, die über eine einfache Protokollmeldung hinausgehen, darunter Zeitstempel, Protokollebenen, Ausnahmedetails und benutzerdefinierte 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 eine .NET 6 ASP.NET Core-Anwendung zu integrieren, konfigurieren Sie Serilog zunächst über die Datei appsettings.json oder den Serilog-Konfigurationsabschnitt. Diese Konfiguration legt fest, wie, wo und welche Protokolldaten erfasst werden.

Über die Konfigurationsdatei

Verwenden Sie die JSON-Konfigurationsdatei, um Protokollebenen und Ausgabeziele zu definieren (wie Protokolldateien oder Konsole)und das Format der Protokollausgabe. Der Ansatz der Konfigurationsdatei bietet die Flexibilität, das Protokollierungsverhalten zu ändern, ohne den Code zu modifizieren. Dies geschieht durch die Angabe von Einstellungen in der Datei appsettings.json, die es Ihnen ermöglicht, Ihre Protokollausgabe in verschiedene Senken wie eine Konsole, eine Datei oder sogar Cloud-basierte Protokollverwaltungsdienste zu leiten.

Programmatisch im Code

Alternativ können Sie Serilog direkt im Code mit der Klasse LoggerConfiguration konfigurieren. Diese Methode wird häufig verwendet, um komplexere Protokollierungsszenarien einzurichten, wie z. B. dynamische Protokollebenen oder benutzerdefinierte Protokollsenken. Sie können zum Beispiel eine rollende Protokolldatei konfigurieren, die in bestimmten Abständen oder bei Erreichen einer bestimmten Größe eine neue Protokolldatei erstellt und so eine effiziente Verwaltung der Protokolldatei gewährleistet.

var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();
var logger = new LoggerConfiguration()
    .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();
Dim logger = (New LoggerConfiguration()).WriteTo.File("logs/myapp.txt", rollingInterval:= RollingInterval.Day).CreateLogger()
VB   C#

Integrieren mit ASP.NET Core

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

var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));
var app = builder.Build();
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog((ctx, lc) => lc
    .WriteTo.Console()
    .ReadFrom.Configuration(ctx.Configuration));
var app = builder.Build();
Dim builder = WebApplication.CreateBuilder(args)
builder.Host.UseSerilog(Function(ctx, lc) lc.WriteTo.Console().ReadFrom.Configuration(ctx.Configuration))
Dim app = builder.Build()
VB   C#

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

Die Iron Software Suite bietet eine Sammlung von C#-Bibliotheken, die die Protokollierungsmöglichkeiten innerhalb einer .NET 6-Anwendung mit Serilog erheblich verbessern können. Diese Suite umfasst verschiedene Tools wie IronPDF, IronOCR, IronXL, IronZip, IronQR, IronBarcode und IronWebScraper, die jeweils einzigartige Funktionalitäten bieten, die in eine ASP.NET Core-Anwendung integriert werden können, um deren Protokollierungs- und Datenverarbeitungsfähigkeiten zu verbessern.

Um Iron Software Suite mit Serilog in eine ASP.NET Core-Anwendung zu integrieren, führen Sie die folgenden allgemeinen Schritte aus:

  1. Installieren Sie die erforderlichen Iron Software Suite-Pakete mit NuGet oder der Package Manager-Konsole.

  2. Konfigurieren Sie Serilog unter Verwendung der gewünschten Sink-Bibliotheken, z. B. Serilog.Sinks.File für Protokolldateien oder Serilog.Sinks.Console für Konsolenausgaben.

  3. Verwenden Sie die Bibliotheken der Iron Software Suite im Code Ihrer Anwendung, um deren Funktionalitäten zu nutzen und den Protokollierungsprozess zu verbessern. Dies kann Aufgaben wie die Erstellung von PDFs, das Lesen von Barcodes oder das Scraping von Webinhalten umfassen.

    Durch die Integration der Iron Software Suite mit Serilog können Sie die Protokollierungsfunktionen Ihrer ASP.NET Core-Anwendung erweitern und die zusätzlichen Funktionen nutzen, die diese Bibliotheken bieten.

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 von Protokolldaten zu erstellen, die eine einfache Verteilung und Anzeige von Protokollinformationen in einem standardisierten Format ermöglichen.

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

IronOCR

IronOCR ist eine optische Zeichenerkennung (OCR) bibliothek, die Bilder in Text in 127 Sprachen übersetzen kann. Diese Funktion kann in Protokollierungsszenarien verwendet werden, in denen Textdaten aus Bildern oder gescannten Dokumenten extrahiert werden müssen, um die Protokolldaten mit mehr Kontextinformationen anzureichern.

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

IronXL

IronXL bietet Funktionen für die Arbeit mit Excel, ohne dass Office Interop erforderlich ist. Dies kann insbesondere bei der Protokollierung von Vorteil sein, da die Protokolldaten zur weiteren Analyse und Berichterstellung nach Excel exportiert werden können und eine vertraute Schnittstelle für die Datenmanipulation und -visualisierung bieten.

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 und so die Sicherheit und Rückverfolgbarkeit der protokollierten Informationen verbessern.

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

Schlussfolgerung

Die Integration von Iron Software Suite mit Serilog in ASP.NET Core-Anwendungen bereichert nicht nur den Protokollierungsprozess, sondern sorgt auch für mehr Vielseitigkeit bei der Handhabung, Darstellung und Analyse von Protokolldaten. Ob es um die Erstellung von PDF-Berichten, die Verarbeitung von bildbasierten Protokollen, die Verarbeitung von Excel-Daten, die Verwaltung von Protokolldateigrößen, die Sicherung von Protokollinformationen oder das Scraping von Webinhalten geht - die Kombination von Serilog mit der Iron Software Suite eröffnet eine Vielzahl von Möglichkeiten für die erweiterte Protokollierung und Datenverarbeitung in .NET 6-Umgebungen.

Iron Software Suite bietet eine kostenloser Testund bietet Entwicklern eine hervorragende Gelegenheit, die Funktionen und Möglichkeiten zur Verbesserung ihrer ASP.NET Core-Anwendungen zu erkunden, insbesondere bei Integration mit Serilog für erweiterte Protokollierungs- und Datenverarbeitungsfunktionen.

< PREVIOUS
Microsoft Logging C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# REPL (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >