您目前已離線,請等候您的網際網路重新連線

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

本文曾發行於 CHT307024
如需本文的 Microsoft Visual C++ .NET 版本,請參閱 815661
如需本文的 Microsoft Visual Basic .NET 版本,請參閱 301279

本文參照下列 Microsoft .NET Framework 類別庫 (Class Library) 的命名空間:
  • System.Diagnostics

本文內容

結論
本文將逐步告訴您,如何使用 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 - 最後檢閱時間:04/15/2005 11:30:29 - 修訂: 3.3

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 標準版

  • kbdebug kbhowtomaster KB307024
意見反應
s://c.microsoft.com/ms.js"> /html>