C#:
การเขียนไปยังข้อผิดพลาดมาตรฐาน
วิธีการ:
ใน C# การเขียนข้อความลงใน standard error สามารถทำได้โดยใช้สตรีม Console.Error
สตรีมนี้ใช้เฉพาะสำหรับข้อความข้อผิดพลาดและการวินิจฉัย นี่คือตัวอย่างพื้นฐาน:
Console.Error.WriteLine("Error: Failed to process the request.");
ผลลัพธ์ตัวอย่าง (ไปที่ stderr):
Error: Failed to process the request.
สำหรับสถานการณ์ที่คุณอาจใช้ไลบรารีของบุคคลที่สามที่มีฟังก์ชันการบันทึกล็อกขั้นสูง เช่น Serilog
หรือ NLog
คุณสามารถตั้งค่าไลบรารีเหล่านี้เพื่อเขียนบันทึกข้อผิดพลาดลงใน stderr ได้ แม้ว่าตัวอย่างเหล่านี้จะเน้นย้ำไปที่การเปลี่ยนทิศทางคอนโซลเรียบง่าย แต่จำไว้ว่าในแอปพลิเคชันระดับการผลิต กรอบการทำงานการบันทึกข้อมูลมีเครื่องมือในการจัดการและเลือกตัวเลือกผลลัพธ์ข้อผิดพลาดที่แข็งแกร่งกว่าเยอะ นี่คือตัวอย่างง่ายๆ กับ Serilog
:
ก่อนอื่น ติดตั้งแพ็กเกจ Serilog และ Console sink ของมัน:
Install-Package Serilog
Install-Package Serilog.Sinks.Console
จากนั้น ตั้งค่า Serilog เพื่อเขียนไปที่ stderr:
using Serilog;
Log.Logger = new LoggerConfiguration()
.WriteTo.Console(standardErrorFromLevel: Serilog.Events.LogEventLevel.Error)
.CreateLogger();
Log.Information("This is a normal message.");
Log.Error("This is an error message.");
ผลลัพธ์ตัวอย่าง (ไปที่ stderr สำหรับข้อความข้อผิดพลาด):
[15:04:20 ERR] This is an error message.
หมายเหตุ: การตั้งค่า standardErrorFromLevel
ใน console sink ของ Serilog จะทำการเปลี่ยนทิศทางกิจกรรมบันทึกข้อมูลที่ระดับที่ระบุ (ข้อผิดพลาดในกรณีนี้) หรือสูงกว่าไปยังสตรีม standard error ในขณะที่ข้อความระดับต่ำกว่า เช่น Information จะถูกเขียนไปยังสตรีมของผลลัพธ์ปกติ