2013-05-10 199 views
2

我有一個使用EventLog進行日誌記錄的Windows服務應用程序。在應用程序安裝我跑:Windows事件日誌 - 事件ID 0

eventcreate /L APPLICATION /SO "My App" /T SUCCESS /id 1 /D "Initialised Log" 

然後在C#我的申請記錄我做的:

EventLog.WriteEntry(message, EventLogEntryType.Error, 1, 0, details); 

然而,當我看到在應用程序事件日誌,除了我的活動我看到事件ID條目0.我不能使用eventcreate創建一個ID = 0條目(表示ID必須> = 1)。那麼創建這些事件是什麼?有沒有辦法阻止事件日誌抱怨損壞的安裝?

一個例子詞條中說:

以下信息包括與事件:

服務成功啓動。

消息資源存在,但在串/消息表

回答

2

ServiceBase類有一個屬性AUTOLOG,默認爲未找到的消息。這意味着它會自動報告狀態變化,如開始,停止,暫停和繼續。 MSDN documentation is here

如果您要舉報信息自定義日誌,而不是應用程序日誌,或者如果你想取消這些事件日誌條目,你應該設置AUTOLOG在構造函數。

2

您是否獲得了文字:

從源頭對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 

,然後我所有的事件日誌條目(甚至是舊的)右看不抱怨腐敗