我有一个使用EventLog进行日志logging的Windows服务应用程序。 在应用程序安装程序中,我运行:
eventcreate /L APPLICATION /SO "My App" /T SUCCESS /id 1 /D "Initialised Log"
然后在C#中的应用程序logging器中,我执行:
EventLog.WriteEntry(message, EventLogEntryType.Error, 1, 0, details);
但是,当我在应用程序事件日志看,除了我的事件,我看到EventID 0的条目。我不能使用eventcreate创build一个ID = 0条目(说ID必须> = 1)。 那么创build这些事件是什么? 有没有什么办法阻止事件日志抱怨损坏的安装?
一个例子说:
活动中包含以下信息:
服务已成功启动。
消息资源存在但消息在string/消息表中找不到
ServiceBase
类具有属性AutoLog ,默认情况下为true 。 这意味着它会自动报告状态变化,如开始,停止,暂停和继续。 MSDN文档在这里 。
如果要将信息报告给自定义日志而不是应用程序日志,或者要禁止这些事件日志条目,则应在构造函数中将AutoLog设置为false 。
你是否得到了文字:
无法找到来自源myApp的事件ID 0的说明。 引发此事件的组件未在本地计算机上安装,或者安装已损坏。 您可以在本地计算机上安装或修复组件。
在所有的事件日志条目前,按照正确的错误?
我使用eventcreate后,只能通过编辑注册表摆脱
HKLM\System\CurrentControlSet\Services\Eventlog\Application\MyEventSource customSource (1) EventMessageFile %SystemRoot%\System32\EventCreate.exe TypesSupported (7)
我改变了这个
EventMessageFile C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll
然后我所有的事件日志条目(甚至是旧的条目)都看起来不错,没有抱怨腐败