ETW似乎是你的目的相當複雜,這裏的寫入事件日誌的程序:
a)一次性安裝(您通常會在安裝應用程序時執行此操作)Register your application as a Event Provider;只有真正需要的EventMessageFile
條目:
- 鍵= HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\事件日誌\應用程序\ MyCoolGame
- 字符串名稱(REG_EXPAND_SZ)= EventMessageFile
- 字符串值= C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ EventLogMessages.dll
b)根據程序的啓動:Register Event Source和接收處理:
hEventLog = RegisterEventSource(NULL, lpszAppNameName);
C)使用ReportEvent function將條目寫入到事件日誌:
TCHAR szLogBuffer[] = _T("Started new multiplayer server.");
const TCHAR *lpszEventStrings[2] = {szLogBuffer, NULL};
ReportEvent(hEventLog, EVENTLOG_INFORMATION_TYPE, 0, 1, NULL, 1, 0, lpszEventStrings, NULL)
d)在程序關機:
DeregisterEventSource(hEventLog);
......彷彿任何人實際上設法發現在全球應用相關的事件日誌...如果你的事件實際上是將要尋找,使用一個單獨的日誌,「應用程序」一個是污染最嚴重的,找到你在找的東西總是一場噩夢。 –
@MatteoItalia個人而言,當我的機器發生任何錯誤時,我所做的第一件事是檢查事件查看器。很大一部分時間,這些信息讓我自己解決問題,或者至少知道下一步要搜索什麼。我想爲使用我的應用的用戶提供相同的體驗。自定義事件日誌的問題是,沒有人知道它在那裏。 – MooseBoys