如何:配置 EventLog 组件实例
更新:2007 年 11 月
配置 EventLog 组件的实例涉及三个主要属性:
Log 属性指示您要与其进行交互的日志。
MachineName 属性指示您正处理的日志所在的计算机。
Source 属性指示在您的组件向日志写入项时用来标识该组件的源字符串。
配置 EventLog 组件实例的方式取决于您打算如何使用它:
如果您正计划将项写入到日志中,则必须完成以下两件事中的一件。您必须使用 CreateEventSource 方法注册源并将 EventLog 组件的 Source 属性设置为同一源,或者必须为组件设置 MachineName、Log 和 Source 属性。
说明: 您可以直接在组件上设置 Log 属性,也可以在将组件注册为事件源的代码中设置该属性。将该组件注册为一个源后,在服务器的注册表中就已经设置好了一个连接,它将您的组件与某特定日志联系起来。
如果您打算读取日志项或监视日志,则必须设置 MachineName 和 Log 属性以指出您正在监视的日志。这种情况下不需要设置 Source 属性。
如果希望组件能够接收 EntryWritten 事件的通知,必须将 EnableRaisingEvents 设置为 true。有关更多信息,请参见 如何:处理 EntryWritten 事件。
下面的示例说明了如何配置您的组件以便可以向 Application 日志写入条目。此示例中,源尚未注册到日志中,所以您必须指定源字符串、日志和计算机名称。您不需要显式调用 CreateEventSource 方法,因为如果源尚未注册,WriteEntry 调用会将源注册到日志中。
Dim EventLog1 As New EventLog("Application", "myserver", "newsource") EventLog1.WriteEntry("Test")
System.Diagnostics.EventLog EventLog1 = new System.Diagnostics.EventLog("Application", "myserver", "newsource"); EventLog1.WriteEntry("Test");
如果此源已注册,您只需设置 Source 属性就可以写入项。例如,以下代码说明了如何用已注册的源向日志中写入条目。
If Not EventLog.SourceExists("ExistingSourceString") Then EventLog.CreateEventSource("ExistingSourceString", "Application") End If Dim EventLog1 As New EventLog() EventLog1.Source = "ExistingSourceString" EventLog1.WriteEntry("TestEntry2")
if (!System.Diagnostics.EventLog.SourceExists("ExistingSourceString")) System.Diagnostics.EventLog.CreateEventSource( "ExistingSourceString", "Application"); System.Diagnostics.EventLog EventLog1 = new System.Diagnostics.EventLog(); EventLog1.Source = "ExistingSourceString"; EventLog1.WriteEntry("TestEntry2");
说明: 如果未设置 MachineName 属性(如这些示例所示),则假定使用本地计算机。
有关这些属性的更多信息,请参见 事件日志参考。
从事件日志中检索出的条目是按多个属性归类的。有关这些属性的信息,请参见 EventLog。
配置 EventLog 组件的实例
创建 EventLog 组件的实例。有关更多信息,请参见 如何:创建 EventLog 组件实例。
设置 Log、MachineName 和 Source 属性的适当组合:
如果您希望
执行此操作
读取或监视事件日志
设置 Log 和 MachineName
使用新的 Source 字符串向日志中写入项
设置 Source、Log 和 MachineName
为现有的 Source 向日志中写入项
将 Source 属性设置为现有源;此时将自动设置其他属性
若要使组件实例能够接收 EntryWritten 事件的通知,请将 EnableRaisingEvents 属性设置为 true。