C#:
Protokollierung
Wie geht das:
In C# kann man den eingebauten Namensraum System.Diagnostics
oder Drittanbieter-Bibliotheken wie NLog oder log4net verwenden. Hier ist ein schnelles Beispiel, das die in .NET Core verfügbare ILogger
Schnittstelle verwendet:
using Microsoft.Extensions.Logging;
using System;
public class Program
{
public static void Main()
{
using var loggerFactory = LoggerFactory.Create(builder => {
builder.AddConsole();
});
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Dies ist eine informative Nachricht.");
logger.LogWarning("Dies ist eine Warnmeldung.");
logger.LogError("Dies ist eine Fehlermeldung.");
}
}
Beispielausgabe:
info: Program[0]
Dies ist eine informative Nachricht.
warn: Program[0]
Dies ist eine Warnmeldung.
fail: Program[0]
Dies ist eine Fehlermeldung.
Vertiefung
Die Geschichte des Loggings in der Softwareentwicklung ist fast so alt wie die Programmierung selbst; sie hat sich von einfachen Print-Befehlen zu ausgeklügelten, konfigurierbaren Systemen entwickelt. Ursprünglich wurde das Logging durch Schreiben in Dateien oder die Konsole durchgeführt, aber es hat sich zu komplexeren Strukturen wie Log-Aggregationssystemen und verteilten Tracing-Plattformen (wie ELK-Stack oder Jaeger) entwickelt.
Alternativen zum eingebauten Logging in .NET umfassen Drittanbieter-Bibliotheken:
- NLog: vielseitig und einfach einzurichten, mit vielen Funktionen für das Routing, Formatieren und Filtern von Logs.
- log4net: inspiriert von der Java-Bibliothek log4j, ist es hochkonfigurierbar über XML und unterstützt eine Vielzahl von Log-Repositories.
Wenn es um Implementierungsdetails geht, kann die Wahl Ihrer Logging-Abstraktion (wie Microsoft.Extensions.Logging) und des zugrundeliegenden Logging-Providers die Leistung und Zuverlässigkeit Ihrer Anwendung erheblich beeinflussen. Es ist entscheidend, Logging-Ebenen angemessen zu konfigurieren und sicherzustellen, dass das Schreiben von Logs keinen Engpass wird.
Auch strukturiertes Logging - bei dem man nicht nur Strings, sondern Schlüssel-Wert-Paare oder Objekte loggt - ermöglicht präzisere und umsetzbare Logs, die einfacher zu abfragen und zu analysieren sind.
Siehe auch
- Microsoft.Extensions.Logging Dokumentation
- NLog Dokumentation
- log4net Dokumentation
- Serilog Dokumentation (als Beispiel für strukturiertes Logging)