2013-03-07 44 views
2

我想写入默认的应用程序事件日志而无需自动创建事件日志源或通过EventLog.CreateEventSource。该程序可能以非管理员身份运行,无法创建事件日志源。此应用程序没有安装程序。在这种情况下,我可以指定哪些来源“始终有效”?在不创建源的情况下写入应用程序日志

以供参考,该错误信息是:

System.Security.SecurityException: The source was not found, but some or all event logs could not be searched. To create the source, you need permission to read all event logs to make sure that the new source name is unique. Inaccessible logs: Security. 

回答

4

你可以不注册事件源写的,你需要管理权限来创建一个。如果您拥有管理权限并在未首先创建源的情况下编写日志,则Windows会自动创建事件源。

从MSDN:

使用WriteEvent和WriteEntry将事件写入事件日志。您必须指定一个事件源来编写事件;您必须先创建并配置事件源,然后才能使用源编写第一个条目。

在安装应用程序的过程中创建新的事件源。这允许操作系统刷新注册事件源列表及其配置。如果操作系统未刷新其事件源列表,并且尝试使用新源编写事件,则写入操作将失败。您可以使用EventLogInstaller或使用CreateEventSource方法来配置新的源。您必须拥有计算机上的管理权限才能创建新的事件源。

EventLog.Source Property

相关问题