การเขียนไปยังข้อผิดพลาดมาตรฐาน

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 จะถูกเขียนไปยังสตรีมของผลลัพธ์ปกติ