Share via


HOW TO:建立及移除自訂事件記錄檔

更新:2007 年 11 月

您可以利用 EventLog 類別,在本機或遠端電腦上建立自訂事件記錄檔。如果當元件將項目寫入預設的應用程式記錄檔時,想要用比所允許更粗略的方法來組織項目,您可以建立一個自訂記錄檔。例如,假設您有一個將項目資訊寫入到事件記錄檔,名為 OrderEntry 的元件。而您想要備份,並且讓這些項目的保留時間比應用程式記錄檔內其他項目的保留時間還長。您要建立一個名為 OrdersLog 的自訂記錄檔,並登錄元件以便將項目寫入至該記錄檔,而不要以登錄元件寫入應用程式記錄檔。這樣一來,您所有的順序資訊都會儲存在同一地方,並且即使應用程式記錄檔內的項目清除掉也不會受到影響。

您可以間接使用 CreateEventSource 方法來建立自訂記錄檔。此方法會建立一個新的來源並讓您指定要寫入的記錄檔。假如您所指定要寫入的記錄檔不存在,系統會自動建立一個自訂記錄檔,並且將元件登錄為該記錄檔的來源。

注意事項:

移除自訂記錄檔的方式和移除任何記錄檔相同,可藉由呼叫 Delete 方法完成。如需詳細資訊,請參閱 HOW TO:刪除事件記錄檔

最重要的是,要注意建立事件記錄檔和建立 EventLog 元件執行個體的差別。使用 CreateEventSource 方法時,您是在 Windows 裡建立一個新的自訂事件記錄檔,而不是在專案或應用程式裡建立一個元件。當您建立 EventLog 元件執行個體時,是在專案裡建立一個參考外部事件記錄檔的元件。您可以藉由 [事件檢視器] 來檢視使用 CreateEventSource 方法所建立的事件記錄檔,但無法檢視元件執行個體。

注意事項:

一般而言,會在安裝應用程式期間建立新的事件的來源。這可讓作業系統有時間重新整理已登錄事件來源的清單及其組態。如果作業系統並未重新整理其事件來源清單,而您嘗試要用新的來源寫入事件,則寫入作業將失敗。如果不可能在安裝時建立來源,則請設法在第一次寫入作業之前建立來源,也許在應用程式初始化期間即可建立。如果選擇採用這種方式,就一定要在電腦上用系統管理員權限,執行初始化程式碼。您必須要有這些權限,才能建立新的事件的來源。

您可以在 [伺服器總管] 或 Windows 2000 [電腦管理] 視窗中,檢視自訂記錄檔。如需詳細資訊,請參閱 HOW TO:在伺服器總管中使用事件記錄檔HOW TO:在伺服器總管中啟動事件檢視器

您必須在遠端電腦上有適當的存取權限,才能建立及刪除記錄檔。如需詳細資訊,請參閱事件記錄檔安全性細節

安全性注意事項:

建立事件記錄檔時,請注意資源可能已經存在。另一個也許是惡意的處理序,可能已經建立資源,而且擁有其存取權限。將資料置於事件記錄檔時,其他處理序可以使用該資料。如需現有事件記錄檔的詳細資訊,請參閱 HOW TO:判斷事件記錄檔是否存在

若要建立自訂事件記錄檔

  • 呼叫 CreateEventSource 方法,並指定您想建立之記錄檔的來源字串及名稱。

    注意事項:

    如果您將記錄檔名稱指定為 null (" "),則它會預設值為 Application 記錄檔。這樣不會建立新的記錄檔,但是會將特定來源登錄給應用程式記錄檔。如果您建立新的記錄檔,則在判斷名稱是否為唯一時只會評估前八個字母。

    下列範例會說明如何在本機電腦上建立一個名為 MyNewLog 的自訂記錄檔。此程式碼會假設 System.Diagnostics 命名空間已有 Imports 或 using 陳述式存在:

    EventLog.CreateEventSource("ApplicationName", "LogName")
    
         System.Diagnostics.EventLog.CreateEventSource("ApplicationName", "LogName");
    

    若要在遠端電腦上建立自訂事件記錄檔,請將電腦名稱指定為第三個參數。下列程式碼示範一個範例。

    Dim creationData As New EventSourceCreationData("ApplicationName", "LogName")
    creationData.MachineName = "ServerName"
    EventLog.CreateEventSource(creationData)
    
         System.Diagnostics.EventSourceCreationData creationData = new
                System.Diagnostics.EventSourceCreationData("ApplicationName", "LogName");
            creationData.MachineName = "ServerName";
            EventLog.CreateEventSource(creationData);
    

請參閱

工作

HOW TO:刪除事件記錄檔

HOW TO:在伺服器總管中使用事件記錄檔

HOW TO:在伺服器總管中啟動事件檢視器

概念

事件記錄檔安全性細節

EventLog 元件的簡介

參考

EventLog

其他資源

管理事件記錄檔