C#:
การบันทึกล็อก
วิธีการ:
ใน C#, คุณสามารถใช้ System.Diagnostics
namespace ในตัวหรือไลบรารี่ของบุคคลที่สามเช่น NLog หรือ log4net นี่คือตัวอย่างที่รวดเร็วโดยใช้ ILogger
interface ที่มีใน .NET Core:
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("นี่คือข้อความข้อมูล");
logger.LogWarning("นี่คือข้อความเตือน");
logger.LogError("นี่คือข้อความข้อผิดพลาด");
}
}
ตัวอย่างผลลัพธ์:
info: Program[0]
นี่คือข้อความข้อมูล
warn: Program[0]
นี่คือข้อความเตือน
fail: Program[0]
นี่คือข้อความข้อผิดพลาด
การศึกษาเพิ่มเติม
ประวัติของการบันทึกในการพัฒนาซอฟต์แวร์นั้นเก่าแก่เกือบเท่ากับการเขียนโปรแกรมเอง; ได้พัฒนาจากคำสั่งพิมพ์ง่ายๆ ไปสู่ระบบที่สามารถปรับแต่งได้อย่างซับซ้อน ในต้นแต่การบันทึกจะทำโดยการเขียนลงในไฟล์หรือคอนโซล แต่ได้ขยายไปสู่โครงสร้างที่ซับซ้อนมากขึ้น เช่น ระบบรวมบันทึกและแพลตฟอร์มติดตามแบบกระจาย (เช่น ELK stack หรือ Jaeger).
ตัวเลือกที่นอกเหนือจากการบันทึกในตัวของ .NET ได้แก่ ไลบรารี่ของบุคคลที่สาม:
- NLog: หลากหลาย และง่ายต่อการตั้งค่า มีคุณสมบัติมากมายสำหรับการเส้นทาง, การจัดรูปแบบ และการกรองบันทึก
- log4net: ได้แรงบันดาลใจจากไลบรารี่ log4j ของ Java นี้สามารถปรับแต่งได้อย่างสูงจาก XML และรองรับหลายไร้พพอสิทอรีบันทึก
เมื่อพูดถึงรายละเอียดในการดำเนินการ การเลือกการสรุปการบันทึกของคุณ (เช่น Microsoft.Extensions.Logging) และผู้ให้บริการบันทึกข้อมูลภายใต้สามารถส่งผลอย่างมากต่อประสิทธิภาพและความน่าเชื่อถือของแอปพลิเคชันของคุณ มันสำคัญที่จะต้องกำหนดระดับการบันทึกอย่างเหมาะสมและให้แน่ใจว่าการเขียนบันทึกไม่เป็นจุดขัดข้อง
นอกจากนี้ การบันทึกโครงสร้าง - ซึ่งคุณบันทึกไม่เพียงแต่สตริง แต่ยังมีคู่คีย์-ค่าหรือวัตถุ - อนุญาตให้มีบันทึกที่แม่นยำและสามารถดำเนินการได้มากขึ้น ซึ่งง่ายต่อการค้นหาและวิเคราะห์
ดูเพิ่มเติม
- เอกสาร Microsoft.Extensions.Logging
- เอกสาร NLog
- เอกสาร log4net
- เอกสาร Serilog (ตัวอย่างของการบันทึกโครงสร้าง)