[C#.NET][VB.NET] 事件記錄簿 / EventLog

  • 21817
  • 0
  • C#
  • 2009-06-11

[C#.NET][VB.NET] 事件記錄簿 / EventLog

.NET Framework 2.0以上就提供了讀寫事件記錄簿的功能,好讓已上機工作的程式將錯誤訊息記錄下來,當然也不一定要用事件記錄簿來記錄,只是.NET有提供這一個功能,至於應用方面,還是得靠自己的經驗實務來累積呢。不過事件記錄簿還是有一些使用上的限制,http://msdn.microsoft.com/zh-tw/library/system.diagnostics.eventlog(VS.80).aspx

using System.Diagnostics 命名空間

 

如何建立記錄

1.類別實體化,建立一個事件記錄器

EventLog DemoLog = new EventLog("Application");

 


2.指定來源名稱,必須與實體化名稱相同

DemoLog.Source = "Demo";

 


3.寫入事件訊息

DemoLog.WriteEntry("A DemoService Restarted due to reboot", EventLogEntryType.Information); 

 


如何讀取事件記錄

1.類別實體化,建立一個事件記錄器

EventLog DemoLog = new EventLog("System");

 


2.讀取資料

3.印出資料

foreach (EventLogEntry DemoEntry in DemoLog.Entries)
{
    Console.WriteLine(DemoEntry.Source + ":" + DemoEntry.Message);
 
    this.listBox1.Items.Add(DemoEntry.Source + ":" + DemoEntry.Message);
} 
 

如何建立事件簿

string mySource = "DemoLog";
string myLog = "MyNewLog";
string com = ".";
try
{
    EventLog.DeleteEventSource(mySource, com);
}
catch (Exception)
{ 
 
}
finally 
{
    EventLog.CreateEventSource(mySource, myLog,com);
} 
 
EventLog elog = new EventLog(myLog, com);
elog.Source = mySource;
elog.WriteEntry("A DemoService Restarted due to reboot", EventLogEntryType.Information, 234, Convert.ToInt16(3));

 

 

 

 

 

 

 

 

 

如何刪除事件記錄

try
{
    EventLog.Delete("MyNewLog");
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message.ToString());
}

 

 

因為懶的判斷事件記錄簿存不存在,所以就用try..catch攔截

 

範例下載:C#.NET 事件記錄簿.rar

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo