使用 Visual C++ 將專案寫入事件記錄檔
本文說明如何使用 Microsoft .NET Framework,將您自己的專案新增至作業系統的事件記錄檔。
原始產品版本: Visual C++
原始 KB 編號: 815661
需求
Visual Studio .NET
將專案寫入事件記錄檔
事件記錄提供標準的集中式方式,讓您的應用程式記錄重要的軟體和硬體事件。 Windows 提供標準使用者介面來檢視記錄:事件檢視器。 藉由使用 Common Language Run-time EventLog 元件,您可以在本機和遠端電腦上輕鬆地連線到現有的事件記錄檔,並將專案寫入這些記錄檔。 您也可以讀取現有記錄中的專案,並建立自己的自定義事件記錄檔。 在最簡單的形式中,寫入事件記錄檔牽涉到建立範例應用程式的幾個步驟。
如果要執行這項操作,請依照下列步驟執行:
啟動 Visual Studio .NET。
建立新的 Visual C++ 受控 C++ 應用程式專案。
將下列這一行新增至程序代碼,以新增對 system.dll 的參考:
#using <system.dll>
using
在 和System::Diagnostics
命名空間上System
使用 指示詞,讓您稍後不需要在程式代碼中限定來自這些命名空間的宣告。 您可以在任何其他宣告之前使用下列語句:using namespace System; using namespace System::Diagnostics;
若要寫入事件記錄檔,您必須有數項資訊:
- 您的訊息
- 您要寫入的記錄檔名稱, (如果記錄檔不存在,則會建立)
- 表示事件來源的字串
您只能使用單一事件記錄檔來註冊特定來源。 如果您想要將訊息寫入多個記錄檔,您必須定義多個來源。
String^ sSource; String^ sLog; String^ sEvent; sSource = gcnew String("dotNET Sample App1"); sLog = gcnew String("Application1"); sEvent = gcnew String("Sample Event1");
使用 類別的
EventLog
兩個靜態方法來檢查您的來源是否存在,以及來源是否不存在,以建立與特定事件記錄檔相關聯的這個來源。 如果您指定的記錄檔名稱不存在,當您將第一個專案寫入記錄檔時,就會自動建立該名稱。 根據預設,如果您未提供記錄檔名稱給CreateEventSource
方法,記錄檔會命名為應用程式 記錄檔。if(!EventLog::SourceExists(sSource)) EventLog::CreateEventSource(sSource,sLog);
若要將訊息寫入事件記錄檔,您可以使用靜態方法
EventLog.WriteEntry
。 這個方法有數個不同的多載版本。 下列範例程式代碼示範採用來源字串和訊息) 的最簡單方法 (,以及支援指定事件標識符和事件類型 (其中一個更複雜的方法) :EventLog::WriteEntry(sSource,sEvent); EventLog::WriteEntry(sSource, sEvent, EventLogEntryType::Warning, 235);
儲存您的應用程式。 執行您的應用程式,然後檢查應用程式登入 事件檢視器 以查看您的新事件。
Visual C++ .NET 中的完整程式代碼清單
#include <tchar.h>
#using <system.dll>
#using <mscorlib.dll>
using namespace System;
using namespace System::Diagnostics;
int _tmain()
{
String^ sSource;
String^ sLog;
String^ sEvent;
sSource = gcnew String("dotNET Sample App1");
sLog = gcnew String("Application1");
sEvent = gcnew String("Sample Event1");
if(!EventLog::SourceExists(sSource))
EventLog::CreateEventSource(sSource,sLog);
EventLog::WriteEntry(sSource,sEvent);
EventLog::WriteEntry(sSource, sEvent,
EventLogEntryType::Warning, 234);
return 0;
}
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應