C#:
Pisanie do standardowego błędu
Jak to zrobić:
W C#, pisanie do standardowego błędu można osiągnąć za pomocą strumienia Console.Error
. Strumień ten służy specjalnie do komunikatów o błędach i diagnoz. Oto podstawowy przykład:
Console.Error.WriteLine("Error: Failed to process the request.");
Przykładowe wyjście (do stderr):
Error: Failed to process the request.
W scenariuszach, w których możesz używać biblioteki innej firmy, która oferuje zaawansowane możliwości logowania, jak Serilog
czy NLog
, możesz skonfigurować te biblioteki, aby zapisywały logi błędów do stderr. Chociaż te przykłady skupiają się na prostej przekierowaniu konsoli, pamiętaj, że w aplikacjach produkcyjnych, frameworki do logowania oferują dużo solidniejsze opcje obsługi błędów i wyjścia. Oto prosty przykład z Serilogiem
:
Najpierw zainstaluj pakiet Serilog i jego zlew do konsoli:
Install-Package Serilog
Install-Package Serilog.Sinks.Console
Następnie skonfiguruj Serilog do pisania do stderr:
using Serilog;
Log.Logger = new LoggerConfiguration()
.WriteTo.Console(standardErrorFromLevel: Serilog.Events.LogEventLevel.Error)
.CreateLogger();
Log.Information("To jest normalna wiadomość.");
Log.Error("To jest wiadomość o błędzie.");
Przykładowe wyjście (do stderr dla wiadomości o błędzie):
[15:04:20 ERR] To jest wiadomość o błędzie.
Uwaga: Konfiguracja standardErrorFromLevel
w zlewie konsolowym Serilog przekierowuje wszystkie zdarzenia logowania na określonym poziomie (Błąd, w tym przypadku) lub wyższym do strumienia błędu standardowego, podczas gdy komunikaty na niższym poziomie, takie jak Informacje, są zapisywane do strumienia wyjścia standardowego.