我们的应用程序中存在一些非致命错误和应用程序恢复的情况。写入应用程序事件源是否可以接受?
当将所述项目填充到选择列表时,无法正确识别某些可导入项目的示例。这些错误不会导致应用程序崩溃,但会提醒用户某些项目未能加载。
在这种情况下,该错误将作为警告记录到应用程序事件日志中。这是应用程序从中恢复的非致命错误,但如果需要,记录到事件日志允许我们查看原始错误。
我们的问题是软件需要能够与高级用户帐户一起安装。不是管理员帐户,我们无法为应用程序创建自定义事件源。
其目的是将错误写入“应用程序”事件源(它已存在于应用程序事件日志中)。但是,这样做会导致类似于以下内容的文字也被包括在内。
找不到源应用程序中事件ID 0的说明。引发此事件的组件未安装在本地计算机上或安装已损坏。您可以在本地计算机上安装或修复组件。
这是因为我们编写它时EventID为0。这种方法将完成工作,但是有没有更好的方法?是否有一种非管理方式来指定应用程序事件源的EventID以表明它来自我们的应用程序?
我已经做了一些阅读:事件ID与事件源组合确定发生什么样的事件。 总之:我不介意警告错误,但我不应该使用我没有创建的源。我无法创建一个(非管理员安装等),所以我希望找到可用于这些事件的事件源,或者使用不同的机制进行日志记录。思考? – MoSlo
如果您使用.NET 4.5,则可以使用EventSource类(http://msdn.microsoft.com/en-us/library/system.diagnostics.tracing.eventsource.aspx)将事件写入ETW,而无需注册。缺点是事件不会保存在事件日志中,所以如果你不积极地听这些事件,你将不会得到它们。 – fsimonazzi