如何使用 Visual C# .NET 寫入事件記錄檔

文章翻譯 文章翻譯
文章編號: 307024 - 檢視此文章適用的產品。
本文曾發行於 CHT307024
全部展開 | 全部摺疊

在此頁中

結論

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

需求

下面清單列出了建議使用的硬體、軟體、網路基礎架構以及所需安裝的 Service Pack:
  • Microsoft Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server 或 Windows NT 4.0 Server
  • Microsoft Visual Studio .NET

寫入事件記錄檔

事件記錄是以標準、集中的方式,為您的應用程式記錄重要的軟體和硬體事件。Windows 提供標準的使用者介面,可以用來檢視記錄檔、「事件檢視器」。使用 Common Language Runtime 的 EventLog 元件,您就可以輕鬆地連接至本機和遠端電腦上的現有事件記錄檔,並將項目寫入至這些記錄檔。您也可以讀取現有記錄檔中的項目,並建立自己的自訂事件記錄檔。在記錄檔最簡單的格式中,只需幾個步驟就可以寫入事件記錄檔,以建立範例應用程式。如果要執行這項操作,請依照下列步驟執行:
  1. 開啟 Visual Studio .NET
  2. 在 Microsoft C# 中建立新的主控台應用程式。Visual C# .NET 會為您建立公用類別和空白 Main 方法。
  3. 確認專案至少參照 System.dll
  4. SystemSystem.Diagnostics 命名空間上使用 using 陳述式,如此您就不必在後面的程式碼中限定這些命名空間的宣告。您必須先使用這些陳述式,才能進行任何其他宣告。
    using System;
    using System.Diagnostics;
    					
  5. 如果要寫入事件記錄檔,您必須具備數項資訊:您的訊息、您想要寫入的記錄檔名稱 (如果尚未存在,即將建立),以及代表事件來源的字串。您可以只使用單一事件記錄檔登錄特定來源;如果您想要將訊息寫入多個記錄檔,必須定義多個來源。
    string sSource;
    string sLog;
    string sEvent;
    
    sSource = "dotNET Sample App";
    sLog = "Application";
    sEvent = "Sample Event";
    					
  6. 使用 EventLog 類別的兩個靜態方法,來查看您的來源是否存在,接著,如果來源不存在,就建立與特定事件記錄檔有關的此來源。如果您指定的記錄檔名稱不存在,在您將第一個項目寫入記錄檔時,就會自動建立名稱。依預設,如果您未提供記錄檔名稱至 CreateEventSource 方法,記錄檔會命名為「應用程式記錄檔」。
    if (!EventLog.SourceExists(sSource))
    	EventLog.CreateEventSource(sSource,sLog);
    					
  7. 如果要將訊息寫入事件記錄檔,您可以使用靜態方法 EventLog.WriteEntry,此方法具有數種不同的多載版本。下列範列程式碼說明最簡單的方法 (採用來源字串和您的訊息),以及多個複雜方法中的其中一個方法 (支援指定事件 ID 和事件類型):
    EventLog.WriteEntry(sSource,sEvent);
    EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.Warning,  234);
    					
  8. 儲存您的應用程式。執行應用程式,然後檢查「事件檢視器」中的「應用程式記錄檔」,以查看您的新事件。

完整的程式碼清單

using System;
using System.Diagnostics;

namespace WriteToAnEventLog_csharp
{
	/// Summary description for Class1.
	class Class1
	{
		static void Main(string[] args)
		{
			string sSource;
			string sLog;
			string sEvent;

			sSource = "dotNET Sample App";
			sLog = "Application";
			sEvent = "Sample Event";

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

			EventLog.WriteEntry(sSource,sEvent);
			EventLog.WriteEntry(sSource, sEvent,
				EventLogEntryType.Warning, 234);
		}
	}
}
				
如果您對於本文有任何意見或建議,請傳送電子郵件至 Visual C# .NET 文件意見

屬性

文章編號: 307024 - 上次校閱: 2005年4月15日 - 版次: 3.3
這篇文章中的資訊適用於:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 標準版
關鍵字:?
kbdebug kbhowtomaster KB307024
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