C#中EventLog组件应用实例
EventLog组件
1. 功能
使用EventLog组件可以轻松地连接到本地和远程计算机上的事件日志,并向这些日志中写入项;也可以从现有日志中读取条目并创建自己的自定义事件日志;还可以使用“服务器资源管理器”查看有访问权限的任何服务器的事件日志列表。用户可以展开“服务器资源管理器”中的“事件日志”节点以查看当前存在的日志列表,以及已写入其中的事件。此外,还可以从“服务器资源管理器”中将某些特定事件日志拖放到设计器上,以创建EventLog组件的实例,该实例自动将其属性设置为指向选定的日志。图1所示为EventLog组件。

图1 EventLog组件
2.属性
EventLog组件的常用属性及说明如表1所示。

表1 EventLog组件常用属性及说明
下面对比较重要的属性进行详细介绍。
(1)Entries属性。该属性获取事件日志的内容。
语法:
public EventLogEntryCollection Entries { get; }
属性值:EventLogEntryCollection保留事件日志中的项。每个项均与EventLogEntry类的一个实例关联。
(2)Log属性。该属性获取或设置读取或写入的日志名称。
语法:
public string Log { get; set; }
属性值:日志的名称可以是Application、System和Security,或是一个自定义的日志名称。默认值为空字符串("")。
(3)Source属性。
语法:
public string Source { get; set; }
属性值:在事件日志中,注册为项源的名称。默认值为空字符串("")。
示例
Entries属性、Log属性和Source属性的使用
单击图2中的【创建日志】按钮会触发该按钮的Click事件,在该事件下,调用CreateEventSource方法创建一个自定义日志。

图2 日志操作
程序主要代码如下:
private void button1_Click(object sender, EventArgs e)
{
if (System.Diagnostics.EventLog.SourceExists("Source1"))
{
System.Diagnostics.EventLog.DeleteEventSource("Source1");
}
// Logs and Sources are created as a pair.
System.Diagnostics.EventLog.CreateEventSource("Source1", "NewLog1");
// Associate the EventLog component with the new log.
eventLog1.Log = "NewLog1";
eventLog1.Source = "Source1";
this.eventLog1.MachineName = ".";
MessageBox.Show("日志创建成功");
}
当单击【写入日志】按钮时,将会触发该按钮的Click事件,在该事件下,调用WriteEntry方法,向自定义日志中写入内容。