[C#] แก้ปัญหา Event Log ใน Windows เต็ม

ปัญหานี้เจอ เมื่อหลายเดือนก่อนแล้ว แต่ไม่มีเวลาเขียน ปัญหาดังกล่าวเกิดจากในโปรแกรมที่พัฒนามีการเขียน log การทำงานและสถานะไปไว้ใน Event log ในส่วนของ Application ดังรูป

พอ Event log เต็มทำให้โปรแกรมดันหยุดไม่ทำงานต่อ แรกๆก็หาหาเหตุไม่เจอ จนเอามารัน debug แล้วก็เจอปัญหาดังกล่าว วิธีการแก้ไขสามารถทำได้ดังนี้
1. เพิ่มขนาด Event log ให้มากขึ้น เพราะโดยปกติ Windows จะให้ขนาดมาที่ 1024 KB เท่านั้น (ทั้ง Log ที่สร้างขึ้นเอง และ ของ Windows เอง) คลิกขวา -> Properties จะได้หน้าต่าง ดังรูป

2. กำหนดรูปแบบการจัดเก็บ เช่นแทนที่ Log เดิมถ้าเต็ม, เคลียร์ออกเมื่อเต็ม ดูรูปจากข้อ 1 ประกอบ
ทั้งสองวิธีดังกล่าวอาจไม่สะดวกหากต้องไปไล่นั่ง Config ให้กับ user ทุกคน ดังนั้นทำการกำหนดใน code ส่วนที่เขียน log จะง่ายกว่า ดังนี้

EventLog evl = new EventLog();
evl.Log = "MyLogName";
evl.MaximumKilobytes = 1024;
evl.ModifyOverflowPolicy(OverflowAction.OverwriteAsNeeded, 0);

หลังจากแก้ไปปัญหาดังกล่าวก็สามารถใช้โปรแกรมได้อย่างราบรื่น

แหล่งข้อมูล
Event Logging – Clearing the Event Log

  1. No comments yet.

  1. No trackbacks yet.