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.