Einführung in Serilog: Was es ist und warum man es braucht
\n\nSerilog ist eine leistungsstarke, flexible und moderne Bibliothek für strukturiertes Logging im .NET-Ökosystem (C#, F#, VB.NET). Im Gegensatz zu klassischen Logging-Frameworks (z. B. NLog oder log4net), die mit flachen Textnachrichten arbeiten, wurde Serilog von Grund auf für die Arbeit mit strukturierten Daten konzipiert.
\n\nWarum braucht man Serilog?
\n- \n
- Strukturiertes Logging: Sie loggen nicht nur einen String, sondern Objekte mit benannten Eigenschaften. Dies ermöglicht eine effiziente Filterung, Suche und Analyse von Logs in Systemen wie Elasticsearch, Seq, Datadog. \n
- Flexibilität (Sinks): Serilog verwendet das Konzept der "Senken" (sinks). Sie können Logs an die Konsole, eine Datei, eine Datenbank, Cloud-Dienste (Azure, AWS), Elasticsearch, Telegram, Slack und hunderte andere Orte senden – einfach durch Hinzufügen des entsprechenden Pakets. \n
- Leistung: Serilog ist für hochlastige Anwendungen optimiert. Es verwendet verzögerte String-Formatierung (message templates), um unnötige Speicherzuweisungen zu vermeiden, wenn die Logging-Stufe nicht aktiv ist. \n
- Einfache Konfiguration: Konfiguration über Code oder JSON-Datei. Der minimale Code für den Start beträgt nur wenige Zeilen. \n
- Diagnose: Ermöglicht das einfache Hinzufügen von Kontextinformationen (z. B. Benutzer-ID, Bestellnummer, Methodenname) zu jedem Log. \n
Installation von Serilog
\n\nSerilog wird über NuGet – den Paketmanager für .NET – verbreitet. Die Installation erfolgt über die Paket-Manager-Konsole (Package Manager Console) oder die .NET CLI.
\n\nInstallation über die .NET CLI (empfohlen):
\ndotnet add package Serilog\ndotnet add package Serilog.Sinks.Console\ndotnet add package Serilog.Sinks.File\ndotnet add package Serilog.Settings.Configuration\ndotnet add package Serilog.AspNetCore\n\nInstallation über die Paket-Manager-Konsole (Visual Studio):
\nInstall-Package Serilog\nInstall-Package Serilog.Sinks.Console\nInstall-Package Serilog.Sinks.File\nInstall-Package Serilog.Settings.Configuration\nInstall-Package Serilog.AspNetCore\n\nErklärung der Pakete:
\n- \n
- Serilog – der Kern der Bibliothek. \n
- Serilog.Sinks.Console – Senke für die Ausgabe in die Konsole. \n
- Serilog.Sinks.File – Senke zum Schreiben in Dateien. \n
- Serilog.Settings.Configuration – ermöglicht das Lesen von Einstellungen aus
appsettings.json. \n - Serilog.AspNetCore – Integration mit ASP.NET Core (fügt HTTP-Kontext zu Logs hinzu). \n
Hinweis für PythonLib-Leser: In Python wäre das Äquivalent zur Installation über pip pip install serilog (aber Serilog ist eine .NET-Bibliothek, für Python gibt es eigene Werkzeuge, z. B. structlog).
Schnellstart: Erster Log in 30 Sekunden
\n\nErstellen Sie eine .NET-Konsolenanwendung und fügen Sie den folgenden Code in Program.cs ein:
using Serilog;\n\n// 1. Serilog konfigurieren\nLog.Logger = new LoggerConfiguration()\n .MinimumLevel.Debug()\n .WriteTo.Console()\n .WriteTo.File("logs/myapp.log", rollingInterval: RollingInterval.Day)\n .CreateLogger();\n\ntry\n{\n Log.Information("Anwendung erfolgreich gestartet.");\n\n int userId = 42;\n string userName = "Alice";\n Log.Information("Benutzer {UserId} mit Namen {UserName} hat sich angemeldet.", userId, userName);\n\n // Beispiel mit Fehler\n try\n {\n throw new InvalidOperationException("Ungültige Operation");\n }\n catch (Exception ex)\n {\n Log.Error(ex, "Fehler bei der Ausführung der Operation für Benutzer {UserId}", userId);\n }\n\n Log.Warning("Dies ist eine Warnung. Stufe: {Leve Auch in der Bibliothek
gRPC für JavaScript (Node.js): Bibliotheken und Codebeispiele
Arbeit mit CSV in C++: Bibliotheken, Parsing und Datenschreiben
Serialisierung von Objekten in Java: Vollständiger Leitfaden mit Beispielen
HTML-Parsing in PHP: DOMDocument, SimpleXML und cURL für Web-Scraping
Elasticsearch-Client für C# (.NET): NEST und Elastic.Clients.Elasticsearch