สามารถใช้ฐานข้อมูล ไฟล์ข้อความ ไฟล์ XML ฯลฯ เพื่อบันทึกบันทึกการทำงานของแอปพลิเคชัน สิ่งที่ฉันแนะนำที่นี่คือการใช้ไฟล์ XML เพื่อบันทึกบันทึกการทำงาน
ฉันคิดว่าการใช้ XML เพื่อบันทึกบันทึกการดำเนินการมีประโยชน์ดังต่อไปนี้:
1. ไม่ใช้พื้นที่ฐานข้อมูลและสามารถลบบันทึกการดำเนินการในอดีตได้ตามต้องการ
2. DataTable สามารถอ่านไฟล์ XML ได้อย่างง่ายดาย และ DataTable ยังสามารถบันทึกเป็นไฟล์ XML ได้อย่างง่ายดาย
3. สะดวกในการดูบันทึก คุณสามารถเปิดไฟล์ XML เพื่อดูโดยตรงหรืออ่านลงใน DataTable แล้วดูผ่านโปรแกรมก็ได้
วิธีการใช้ไฟล์ XML เพื่อบันทึกบันทึกการดำเนินการใน VS2005 มีดังต่อไปนี้:
1. สร้างชุดข้อมูล: JobLogDataSet.xsd
ซึ่งประกอบด้วย 6 ฟิลด์: TraceLevel (ประเภทบันทึก), ผู้ใช้ (ผู้ใช้), DateTime (เวลาดำเนินการ), โมดูล (โมดูล), ฟังก์ชัน (ฟังก์ชัน) และข้อความ (ข้อความ)
หากยังไม่เพียงพอ ให้เพิ่มด้วยตนเอง TraceLevel (ประเภทบันทึก) หมายถึง ข้อมูล คำเตือน ข้อผิดพลาด ความมึนงง และ ปิด
2. สร้างประเภทบันทึก ///
/// ประเภทบันทึก
/// สรุป>
LogType สาธารณะ enum
-
/// <สรุป>
/// ข้อมูล
/// สรุป>
ข้อมูล,
/// <สรุป>
/// เตือน
/// สรุป>
คำเตือน,
/// <สรุป>
/// ความผิดพลาด
/// สรุป>
ข้อผิดพลาด,
/// <สรุป>
/// ติดตาม
/// สรุป>
ติดตาม,
/// <สรุป>
/// ไม่มีการบันทึก
/// สรุป>
ปิด
-
2. วิธีเขียนบันทึก
/// <สรุป>
/// เขียนบันทึก
/// สรุป>
/// ประเภทบันทึก (ข้อมูล คำเตือน ข้อผิดพลาด ความมึนงง ปิด)
/// ผู้ใช้
/// โมดูล
/// ฟังก์ชัน
/// ข้อความ
โมฆะสาธารณะคง WriteLog (LogType logType ผู้ใช้สตริง โมดูลสตริง ฟังก์ชันสตริง ข้อความสตริง)
-
พยายาม
-
// พิมพ์ LogType.Off ไม่บันทึกบันทึก
ถ้า (logType == LogType.Off)
return;
JobLogDataSet.JobLogDataTable t = new JobLogDataSet.JobLogDataTable();
// หนึ่งไฟล์บันทึก (ไฟล์ .XML) ทุกวัน ชื่อไฟล์บันทึกคือ: JobLog yyyy-MM-dd.xml
สตริง jobLogFile = AppDomain.CurrentDomain.BaseDirectory + "JobLog " +
DateTime.Today.ToString("yyyy-MM-dd") + ".xml";
ถ้า (!File.Exists(jobLogFile))
t.WriteXml(jobLogFile);
// อ่านบันทึกจากไฟล์ .XML
t.ReadXml(jobLogFile);
//เพิ่มบันทึก
JobLogDataSet.JobLogRow r = t.NewJobLogRow();
r.TraceLevel = logType.ToString();
r.User = ผู้ใช้;
r.Datetime = DateTime.ตอนนี้;
r.Module = โมดูล;
r.Function = ฟังก์ชั่น;
r.Message = ข้อความ;
t.AddJobLogRow(r);
// บันทึกบันทึกลงในไฟล์ XML
t.WriteXml(jobLogFile);
-
จับ (ข้อยกเว้น)
-
-
3. วิธีอ่านบันทึก
/// <สรุป>
/// อ่านบันทึก
/// สรุป>
///
JobLogDataSet.JobLogDataTable ReadLog() สาธารณะแบบคงที่
-
JobLogDataSet.JobLogDataTable jobLogDataTable = ใหม่ JobLogDataSet.JobLogDataTable();
พยายาม
-
// รับไฟล์บันทึกทั้งหมด JobLog*.xml จากโฟลเดอร์แอปพลิเคชัน
string[] jobLogFiles = Directory.GetFiles(
AppDomain.CurrentDomain.BaseDirectory, "JobLog*.xml", SearchOption.TopDirectoryOnly);
// อ่านบันทึกแต่ละรายการลงในบันทึก DataTable
foreach (สตริง jobLogFile ใน jobLogFiles)
-
ถ้า (File.Exists(jobLogFile))
-
//อ่านไฟล์บันทึกทั้งหมดลงใน DataTable ชั่วคราว
JobLogDataSet.JobLogDataTable t = ใหม่ JobLogDataSet.JobLogDataTable();
t.ReadXml(jobLogFile);
//นำเข้าบันทึกบันทึกไปยังบันทึกหลัก DataTable
foreach (JobLogDataSet.JobLogRow r ใน t)
jobLogDataTable.ImportRow(r);
-
-
// ส่งคืน DataTable บันทึกการอ่าน
กลับ jobLogDataTable;
-
จับ (ข้อยกเว้น)
-
กลับ jobLogDataTable;
-
-
4. เมื่อใดก็ตามที่คุณต้องการเขียนบันทึก เพียงเรียกใช้เมธอด WriteLog โดยตรง