如何:将应用程序添加为事件日志项的源
更新:2007 年 11 月
在您的组件可向事件日志写入条目之前,您必须将其作为有效事件源注册到事件日志,具体方法是:使用 CreateEventSource 方法,并指定一个将组件唯一地标识为事件日志源的字符串。在写入日志条目时,系统使用您标识的源来查找适当的日志以放入您的条目。EventLog 组件实例一次只能向一个日志中写入项。
![]() |
---|
默认情况下,如果事先未将组件注册为有效的源就尝试写入日志项,系统会自动将该源注册到事件日志中,并将 Source 属性的值用作源字符串。通常在安装应用程序的过程中创建新的事件源。这样,操作系统就有时间刷新自己的已注册事件源的列表及其配置。如果操作系统未刷新其事件源列表,而您试图用新的事件源来编写事件,则写操作将失败。如果不能选择在安装过程中创建事件源,则请尝试在第一次写操作之前尽早创建事件源,比如在应用程序初始化过程中创建。如果选择这种方法,请确保使用计算机上的管理员权限运行初始化代码。这些权限是创建新事件源所必需的权限。 |
如果在使用 CreateEventSource 方法时指定了并不存在的日志名,系统将在您第一次尝试向日志中写入项时使用该名称创建一个新的、自定义的事件日志。有关更多信息,请参见 如何:创建和移除自定义事件日志。
可以使用事件类别和消息字符串的本地化资源来注册事件源。应用程序可以使用资源标识符而不是通过指定实际字符串值来写入事件日志项。有关使用资源文件配置事件源的更多信息,请参见 EventLogInstaller 和 EventSourceCreationData 类。
将您的组件确立为事件源
若要在本地计算机上创建日志项,请调用 CreateEventSource 方法,并指定源字符串和日志名作为参数。
说明:
如果将日志名称指定为空(“ ”),将默认为 Application。
下面的示例演示了如何将组件 MyApp1 注册为 Application 日志的一个源。此代码假设对应 System.Diagnostics 命名空间存在一个 Imports 或 using 语句:
EventLog.CreateEventSource("MyApp1", "Application")
System.Diagnostics.EventLog.CreateEventSource("MyApp1", "Application");
提示:
若要在远程计算机上创建事件源,请使用 EventSourceCreationData。以下代码提供了一个示例:
Dim creationData As New EventSourceCreationData("ApplicationName", "Application") creationData.MachineName = "ServerName" EventLog.CreateEventSource(creationData)
System.Diagnostics.EventSourceCreationData creationData = new System.Diagnostics.EventSourceCreationData("ApplicationName", "Application"); creationData.MachineName = "ServerName"; EventLog.CreateEventSource(creationData);