EventLog.Delete Methode

Definition

Entfernt eine Protokollressource.

Überlädt

Name Beschreibung
Delete(String, String)

Entfernt ein Ereignisprotokoll vom angegebenen Computer.

Delete(String)

Entfernt ein Ereignisprotokoll vom lokalen Computer.

Delete(String, String)

Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs

Entfernt ein Ereignisprotokoll vom angegebenen Computer.

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)

Parameter

logName
String

Der Name des zu löschenden Protokolls. Mögliche Werte sind: Anwendung, Sicherheit, System und alle benutzerdefinierten Ereignisprotokolle auf dem angegebenen Computer.

machineName
String

Der Name des Computers, aus dem das Protokoll gelöscht werden soll, oder "." für den lokalen Computer.

Ausnahmen

logName ist eine leere Zeichenfolge ("") oder null.

-oder-

machineName ist kein gültiger Computername.

Der Registrierungsschlüssel für das Ereignisprotokoll konnte auf dem angegebenen Computer nicht geöffnet werden.

-oder-

Das Protokoll ist auf dem angegebenen Computer nicht vorhanden.

Das Ereignisprotokoll wurde nicht erfolgreich gelöscht.

-oder-

Das Protokoll kann nicht geöffnet werden. Ein Windows-Fehlercode ist nicht verfügbar.

Beispiele

Im folgenden Beispiel wird ein Protokoll vom angegebenen Computer gelöscht. Das Beispiel bestimmt das Protokoll aus seiner Quelle.

Note

Mehrere Quellen können in ein Ereignisprotokoll schreiben. Stellen Sie vor dem Löschen eines benutzerdefinierten Protokolls sicher, dass es keine anderen Quellen gibt, die in dieses Protokoll geschrieben werden.

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

Hinweise

Verwenden Sie diese Methode, wenn sich das zu löschende Protokoll auf einem Remotecomputer befindet. Sie können jede Anmeldung auf dem Computer löschen, sofern Sie über die entsprechenden Registrierungsberechtigungen verfügen.

Delete entfernt das von logName dem computer angegebene Protokoll machineName. Wenn Sie nur die quelle löschen möchten, die in einem Protokoll registriert ist, rufen Sie auf DeleteEventSource. Wenn Sie nur die Protokolleinträge löschen möchten, rufen Sie auf Clear. Delete und DeleteEventSource sind static Methoden, sodass sie für die Klasse selbst aufgerufen werden können. Es ist nicht erforderlich, eine Instanz von EventLog beiden Methoden aufzurufen.

Diese Methode löscht zuerst die Datei, die den Inhalt des Protokolls enthält. Anschließend greift sie auf die Registrierung zu und entfernt alle für dieses Protokoll registrierten Ereignisquellen. Wenn Sie das Protokoll zu einem späteren Zeitpunkt neu erstellen, sollten Sie die Ereignisquellen erneut registrieren, wenn sie wiederverwendet werden sollen. Wenn Sie die Ereignisquellen und andere Benutzer nicht registrieren, die in eine Ereignisquelle schreiben, ohne einen Protokollnamen anzugeben, wird die Ereignisquelle im Anwendungsereignisprotokoll erstellt. Daher können Anwendungen, die zuvor Einträge in das von Ihnen gelöschte und neu erstellte Protokoll schreiben konnten, stattdessen in das Anwendungsprotokoll schreiben, da sie jetzt die Ereignisquelle enthält.

Note

Das Erneute Erstellen eines Ereignisprotokolls kann ein schwieriger Prozess sein. Vermeiden Sie das Löschen eines vom System erstellten Ereignisprotokolls, z. B. des Anwendungsprotokolls.

Durch das Löschen eines Protokolls über einen Aufruf werden Delete die in diesem Protokoll registrierten Quellen automatisch gelöscht. Dies kann andere Anwendungen dazu machen, dass diese Anmeldung inoperativ ist.

Weitere Informationen

Gilt für:

Delete(String)

Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs
Quelle:
EventLog.cs

Entfernt ein Ereignisprotokoll vom lokalen Computer.

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)

Parameter

logName
String

Der Name des zu löschenden Protokolls. Mögliche Werte sind: Anwendung, Sicherheit, System und alle benutzerdefinierten Ereignisprotokolle auf dem Computer.

Ausnahmen

logName ist eine leere Zeichenfolge ("") oder null.

Der Registrierungsschlüssel für das Ereignisprotokoll konnte nicht auf dem lokalen Computer geöffnet werden.

-oder-

Das Protokoll ist auf dem lokalen Computer nicht vorhanden.

Das Ereignisprotokoll wurde nicht erfolgreich gelöscht.

-oder-

Das Protokoll kann nicht geöffnet werden. Ein Windows-Fehlercode ist nicht verfügbar.

Beispiele

Im folgenden Beispiel wird ein Protokoll vom lokalen Computer gelöscht. Das Beispiel bestimmt das Protokoll aus seiner Quelle.

Note

Mehrere Quellen können in ein Ereignisprotokoll schreiben. Stellen Sie vor dem Löschen eines benutzerdefinierten Protokolls sicher, dass es keine anderen Quellen gibt, die in dieses Protokoll geschrieben werden.

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

Hinweise

Verwenden Sie diese Methode, wenn sich das zu löschende Protokoll auf dem lokalen Computer befindet. Sie können jede Anmeldung auf dem Computer löschen, sofern Sie über die entsprechenden Registrierungsberechtigungen verfügen.

Delete entfernt das vom logName lokalen Computer angegebene Protokoll. Wenn Sie nur die quelle löschen möchten, die in einem Protokoll registriert ist, rufen Sie auf DeleteEventSource. Wenn Sie nur die Protokolleinträge löschen möchten, rufen Sie auf Clear. Delete und DeleteEventSource sind static Methoden, sodass sie für die Klasse selbst aufgerufen werden können. Es ist nicht erforderlich, eine neue Instanz von EventLog beiden Methoden aufzurufen.

Die Delete Methode löscht zuerst die Datei, die den Inhalt des Protokolls enthält. Anschließend greift sie auf die Registrierung zu und entfernt alle für dieses Protokoll registrierten Ereignisquellen. Wenn Sie das Protokoll zu einem späteren Zeitpunkt neu erstellen, sollten Sie die Ereignisquellen erneut registrieren, wenn sie wiederverwendet werden sollen. Wenn Sie die Ereignisquellen und andere Benutzer nicht registrieren, die in eine Ereignisquelle schreiben, ohne einen Protokollnamen anzugeben, wird die Ereignisquelle im Anwendungsereignisprotokoll erstellt. Daher können Anwendungen, die zuvor Einträge in das von Ihnen gelöschte und neu erstellte Protokoll schreiben konnten, stattdessen in das Anwendungsprotokoll schreiben, da sie jetzt die Ereignisquelle enthält.

Note

Das Erneute Erstellen eines Ereignisprotokolls kann ein schwieriger Prozess sein. Vermeiden Sie das Löschen eines vom System erstellten Ereignisprotokolls, z. B. des Anwendungsprotokolls.

Durch das Löschen eines Protokolls über einen Aufruf werden Delete die in diesem Protokoll registrierten Quellen automatisch gelöscht. Dies kann andere Anwendungen dazu machen, dass diese Anmeldung inoperativ ist.

Weitere Informationen

Gilt für: