如何使用 Visual C++ 中寫入事件記錄檔

文章翻譯 文章翻譯
文章編號: 815661 - 檢視此文章適用的產品。
本文章的有 Microsoft Visual C#.NET] 版本請參閱 307024
本文章的有 Microsoft Visual Basic.NET] 版本請參閱 301279

這份文件參照到下列的 Microsoft.NET Framework 類別庫的命名空間:
  • 系統
  • 命名
全部展開 | 全部摺疊

在此頁中

簡介

本文將逐步告訴您,如何藉由使用 Microsoft.NET Framework 將您自己的項目加入至事件記錄檔的作業系統。

其他相關資訊

需求

下列清單說明建議的硬體、 軟體、 網路基礎結構及您需要的服務套件:
  • Microsoft Windows 2000 專業版、 Windows 2000 Server Windows 2000 進階伺服器或 Windows NT 4.0 伺服器
  • Microsoft Visual Studio.NET
  • Microsoft Visual Studio 2005

寫入事件記錄檔

事件記錄提供標準、 集中式的方法,讓您的應用程式記錄重要的軟體和硬體事件。Windows 提供用來檢視記錄檔的標準使用者介面: 「 事件檢視器 」。利用通用語言執行階段 EventLog 元件可以本機及遠端電腦上輕鬆地,連結到現有的事件記錄檔,並將項目寫入至這些記錄檔。您也可以從現有的記錄檔讀取項目,並建立自己的自訂事件記錄檔。在最簡單的形式寫入事件記錄檔會涉及建立範例應用程式的幾個步驟。

要這麼做,請您執行下列步驟:
  1. 啟動 Visual Studio.NET 或 Visual Studio 2005。
  2. 建立新的 Visual C++ Managed C + + 應用程式專案。

    附註在 Visual 的 C + +.NET 2003年中請依照下列步驟執行:
    1. 在 [專案類型 下, 按一下 [Visual C++ 專案]。
    2. 在 [範本 下, 按一下 [主控台應用程式 (.NET)]。
    在 Visual 的 C + + 2005年中請依照下列步驟執行:
    1. 在 [專案類型,按一下 [Visual C++]。
    2. 在 [範本 下, 按一下 [CLR 主控台應用程式]。
  3. 將參考加入至 system.dll 方式加入下列這一行程式碼:
    #using <system.dll>
  4. 使用 using 指示詞上 系統System::Diagnostics 命名空間,所以您不需限定這些命名空間在稍後的程式碼中的宣告。您必須使用下列的陳述式,在任何其他宣告之前:
    using namespace System;
    using namespace System::Diagnostics;
  5. 若要寫入事件記錄檔,您必須有數個部份的資訊: 您的訊息、 記錄檔的名稱您想要寫 (這如果建立尚未存在) 和字串,表示事件的來源。您可以利用只有一個事件記錄檔註冊特定來源 ; 如果想訊息寫入一個以上的記錄檔,您必須定義
    String *sSource;
    	String *sLog;
    	String *sEvent;
    
    	sSource = new String("dotNET Sample App1");
    	sLog = new String("Application1");
    	sEvent = new String("Sample Event1");
    
    多個來源。
  6. 使用 EventLog 類別的兩個靜態方法,來檢查您的來源是否存在,以及如果來源不存在、 建立此特定的事件記錄檔相關聯的來源。如果您指定的記錄檔名稱不存在,名稱是在第一個項目寫入記錄檔時自動建立。預設情況下,如果您不提供給 CreateEventSource] 方法的記錄檔名稱記錄檔稱為應用程式 Log.
    if(!EventLog::SourceExists(sSource)) EventLog::CreateEventSource(sSource,sLog);
    
  7. 若要寫入訊息至事件記錄檔,您可以使用靜態方法 EventLog.WriteEntry。這個方法有數個不同的多載的版本。下列範例程式碼示範簡單的方法 (這需要一個來源字串及您的訊息),而另一個更複雜的方法 (其支援指定事件 ID 和事件型別):
    EventLog::WriteEntry(sSource,sEvent);
    	EventLog::WriteEntry(sSource, sEvent, EventLogEntryType::Warning, 235);
  8. 儲存您的應用程式。執行您的應用程式,然後再檢查 [事件檢視器,以查看新的事件中應用程式日誌。

完成 Visual C++ 中的程式碼清單。網路

#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 = new String("dotNET Sample App1");
	sLog = new String("Application1");
	sEvent = new String("Sample Event1");

 if(!EventLog::SourceExists(sSource))
   EventLog::CreateEventSource(sSource,sLog);

	EventLog::WriteEntry(sSource,sEvent);
	EventLog::WriteEntry(sSource, sEvent,
		EventLogEntryType::Warning, 234);
	return 0;
}

完成在 Visual C++ 2005年中的程式碼清單

#include <tchar.h>
#include <stdafx.h>
#using <system.dll>
#using <mscorlib.dll>

using namespace System;
using namespace System::Diagnostics;

int main()
{
	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;
}

屬性

文章編號: 815661 - 上次校閱: 2006年1月11日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
關鍵字:?
kbmt kbdebug kbhowtomaster kbeventlog kbhowto KB815661 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:815661
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com