語言

EventLog.Delete 方法

定義

移除一個日誌資源。

多載

名稱 Description
Delete(String, String)

移除指定電腦中的事件日誌。

Delete(String)

從本地電腦移除事件日誌。

Delete(String, String)

來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs

移除指定電腦中的事件日誌。

public:
 static void Delete(System::String ^ logName, System::String ^ machineName);
public static void Delete(string logName, string machineName);
static member Delete : string * string -> unit
Public Shared Sub Delete (logName As String, machineName As String)

參數

logName
String

要刪除的日誌名稱。 可能的值包括:應用程式、安全性、系統,以及指定電腦上的任何自訂事件日誌。

machineName
String

要刪除日誌的電腦名稱,或本地電腦的「.」。

例外狀況

logName 是空字串(“”)或 null。

-或-

machineName 不是一個有效的電腦名稱。

無法在指定的電腦上開啟事件記錄檔的登錄機碼。

-或-

該日誌在指定的電腦上不存在。

事件日誌未能成功清除。

-或-

這段日誌無法打開。 Windows 錯誤代碼無法提供。

範例

以下範例是從指定電腦刪除日誌。 範例從原木來源決定了對數。

Note

可能不只一個來源寫入事件日誌。 在刪除自訂日誌前,請確認沒有其他來源在該日誌中寫入。

using System;
using System.Diagnostics;
using System.Threading;

class MySample
{
    public static void Main()
    {
        string logName;

        if (EventLog.SourceExists("MySource", "MyMachine"))
        {
            // Find the log associated with this source.
            logName = EventLog.LogNameFromSourceName("MySource", "MyMachine");
            // Make sure the source is in the log we believe it to be in.
            if (logName != "MyLog")
                return;
            // Delete the source and the log.
            EventLog.DeleteEventSource("MySource", "MyMachine");
            EventLog.Delete(logName, "MyMachine");

            Console.WriteLine(logName + " deleted.");
        }
        else
        {
            // Create the event source to make next try successful.
            EventSourceCreationData mySourceData = new EventSourceCreationData("MySource", "MyLog");
            mySourceData.MachineName = "MyMachine";
            EventLog.CreateEventSource(mySourceData);
        }
    }
}
Option Explicit On
Option Strict On

Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        Dim logName As String

        If EventLog.SourceExists("MySource", "MyMachine") Then
            ' Find the log associated with this source.    
            logName = EventLog.LogNameFromSourceName("MySource", "MyMachine")
            ' Make sure the source is in the log we believe it to be in
            If (logName <> "MyLog") Then
                Return
            End If
            ' Delete the source and the log.
            EventLog.DeleteEventSource("MySource", "MyMachine")
            EventLog.Delete(logName, "MyMachine")

            Console.WriteLine((logName & " deleted."))
        Else
            ' Create the event source to make next try successful.
            Dim mySourceData As New EventSourceCreationData("MySource", "MyLog")
            mySourceData.MachineName = "MyMachine"
            EventLog.CreateEventSource(mySourceData)
        End If
    End Sub
End Class

備註

當你想刪除的日誌在遠端電腦上時,使用這個方法。 只要你擁有適當的登錄檔權限,就可以刪除電腦上的任何日誌。

Delete從由 logName指定的電腦中移除 的machineName對數。 如果你只想刪除登錄在日誌中的來源,請呼叫 DeleteEventSource。 如果你只想刪除日誌條目,請聯絡 Clear。 Delete 和 DeleteEventSource 是 static 方法,因此可以直接呼叫類別本身。 呼叫任一方法都不需要建立 的 EventLog 實例。

此方法首先刪除存放日誌內容的檔案。 接著它會存取登錄檔,移除該日誌中所有已登記的事件來源。 如果你之後重新建立日誌,應該重新註冊事件來源,以防它們需要重複使用。 如果你沒有註冊事件來源,而其他使用者在未指定日誌名稱的情況下寫入事件來源,事件來源會在應用程式事件日誌中被建立。 因此,先前能寫入你刪除並重建日誌的應用程式,將改寫到應用程式日誌,因為該日誌現在包含事件來源。

Note

重新建立事件記錄可能是一個困難的過程。 避免刪除任何系統產生的事件日誌,例如應用程式日誌。

透過呼叫 Delete 刪除日誌會自動刪除該日誌中註冊的來源。 這可能會使其他使用該日誌的應用程式無法運作。

另請參閱

適用於

Delete(String)

來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs
來源:
EventLog.cs

從本地電腦移除事件日誌。

public:
 static void Delete(System::String ^ logName);
public static void Delete(string logName);
static member Delete : string -> unit
Public Shared Sub Delete (logName As String)

參數

logName
String

要刪除的日誌名稱。 可能的值包括:應用程式、安全性、系統,以及電腦上的任何自訂事件日誌。

例外狀況

logName 是空字串(“”)或 null。

無法在本機計算機上開啟事件記錄檔的登錄機碼。

-或-

該日誌不存在於本地電腦上。

事件日誌未能成功清除。

-或-

這段日誌無法打開。 Windows 錯誤代碼無法提供。

範例

以下範例是從本地電腦刪除日誌。 範例從原木來源決定了對數。

Note

可能不只一個來源寫入事件日誌。 在刪除自訂日誌前,請確認沒有其他來源在該日誌中寫入。

using System;
using System.Diagnostics;
using System.Threading;

class MySample1
{
    public static void Main()
    {
        string logName;

        if (EventLog.SourceExists("MySource"))
        {
            // Find the log associated with this source.
            logName = EventLog.LogNameFromSourceName("MySource", ".");
            // Make sure the source is in the log we believe it to be in.
            if (logName != "MyLog")
                return;
            // Delete the source and the log.
            EventLog.DeleteEventSource("MySource");
            EventLog.Delete(logName);

            Console.WriteLine(logName + " deleted.");
        }
        else
        {
            // Create the event source to make next try successful.
            EventLog.CreateEventSource("MySource", "MyLog");
        }
    }
}
Option Explicit On
Option Strict On

Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        Dim logName As String

        If EventLog.SourceExists("MySource") Then
            ' Find the log associated with this source.    
            logName = EventLog.LogNameFromSourceName("MySource", ".")
            ' Make sure the source is in the log we believe it to be in
            If (logName <> "MyLog") Then
                Return
            End If
            ' Delete the source and the log.
            EventLog.DeleteEventSource("MySource")
            EventLog.Delete(logName)

            Console.WriteLine((logName & " deleted."))
        Else
            ' Create the event source to make next try successful.
            EventLog.CreateEventSource("MySource", "MyLog")
        End If
    End Sub
End Class

備註

當你想刪除的日誌在本地電腦時,使用這個方法。 只要你擁有適當的登錄檔權限,就可以刪除電腦上的任何日誌。

Delete 從本地電腦移除指定的 logName 日誌。 如果你只想刪除登錄在日誌中的來源,請呼叫 DeleteEventSource。 如果你只想刪除日誌條目,請聯絡 Clear。 Delete 和 DeleteEventSource 是 static 方法,因此可以直接呼叫類別本身。 呼叫任一方法都不需要建立新的實例 EventLog 。

此 Delete 方法首先會刪除存放日誌內容的檔案。 接著它會存取登錄檔,移除該日誌中所有已登記的事件來源。 如果你之後重新建立日誌,應該重新註冊事件來源,以防它們需要重複使用。 如果你沒有註冊事件來源,而其他使用者在未指定日誌名稱的情況下寫入事件來源,事件來源會在應用程式事件日誌中被建立。 因此,先前能寫入你刪除並重建日誌的應用程式,將改寫到應用程式日誌,因為該日誌現在包含事件來源。

Note

重新建立事件記錄可能是一個困難的過程。 避免刪除任何系統產生的事件日誌,例如應用程式日誌。

透過呼叫 Delete 刪除日誌會自動刪除該日誌中註冊的來源。 這可能會使其他使用該日誌的應用程式無法運作。

另請參閱

適用於