EventLog.Delete Methode

Definition

Entfernt eine Protokollressource.

Überlädt

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

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. Zu den möglichen Werten gehören das Anwendungs-, Sicherheits- bzw. Systemprotokoll und alle benutzerdefinierten Ereignisprotokolle auf dem angegebenen Computer.

machineName
String

Der Name des Computers, auf 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. Es ist kein Windows-Fehlercode verfügbar.

Beispiele

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

Hinweis

Mehrere Quellen schreiben möglicherweise in ein Ereignisprotokoll. Stellen Sie vor dem Löschen eines benutzerdefinierten Protokolls sicher, dass keine anderen Quellen in dieses Protokoll geschrieben werden.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int 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 -1;
      // Delete the source and the log.
      EventLog::DeleteEventSource( "MySource", "MyMachine" );
      EventLog::Delete( logName, "MyMachine" );
      Console::WriteLine( "{0} deleted.", logName );
   }
   else
        {
            // Create the event source to make next try successful.
            EventSourceCreationData^ mySourceData = gcnew EventSourceCreationData("MySource", "MyLog");
            mySourceData->MachineName = "MyMachine";
            EventLog::CreateEventSource(mySourceData);
        }
}
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 Protokoll, das Sie löschen möchten, auf einem Remotecomputer befindet. Sie können jedes Protokoll auf dem Computer löschen, sofern Sie über die entsprechenden Registrierungsberechtigungen verfügen.

Delete entfernt das von logName angegebene Protokoll vom Computer, der durch angegeben wird machineName. Wenn Sie nur die Quelle löschen möchten, die für ein 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 zu erstellen, um beide Methoden aufzurufen.

Diese Methode löscht zunächst die Datei, die den Inhalt des Protokolls enthält. Anschließend greift sie auf die Registrierung zu und entfernt alle ereignisbasierten Quellen, die für dieses Protokoll registriert sind. 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 nicht registrieren und andere Benutzer ohne Angabe eines Protokollnamens in eine Ereignisquelle schreiben, wird die Ereignisquelle im Anwendungsereignisprotokoll erstellt. Daher schreiben Anwendungen, die zuvor Einträge in das Protokoll schreiben konnten, das Sie gelöscht und neu erstellt haben, stattdessen in das Anwendungsprotokoll, da es jetzt die Ereignisquelle enthält.

Hinweis

Das Erneute Erstellen eines Ereignisprotokolls kann schwierig sein. Vermeiden Sie das Löschen von vom System erstellten Ereignisprotokollen, z. B. das Anwendungsprotokoll.

Wenn Sie ein Protokoll über einen Aufruf von löschen, Delete werden die in diesem Protokoll registrierten Quellen automatisch gelöscht. Dies kann dazu führen, dass andere Anwendungen, die dieses Protokoll verwenden, nicht mehr funktionsfähig sind.

Weitere Informationen

Gilt für:

Delete(String)

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. Zu den möglichen Werten gehören das Anwendungs-, Sicherheits- bzw. Systemprotokoll und alle benutzerdefinierten Ereignisprotokolle auf dem Computer.

Ausnahmen

logName ist eine leere Zeichenfolge ("") oder null

Der Registrierungsschlüssel für das Ereignisprotokoll konnte auf dem lokalen Computer nicht 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. Es ist kein Windows-Fehlercode verfügbar.

Beispiele

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

Hinweis

Mehrere Quellen schreiben möglicherweise in ein Ereignisprotokoll. Stellen Sie vor dem Löschen eines benutzerdefinierten Protokolls sicher, dass keine anderen Quellen in dieses Protokoll geschrieben werden.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int 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 -1;
      // Delete the source and the log.
      EventLog::DeleteEventSource( "MySource" );
      EventLog::Delete( logName );
      Console::WriteLine( "{0} deleted.", logName );
   }
   else
        {
            // Create the event source to make next try successful.
            EventLog::CreateEventSource("MySource", "MyLog");
        }
}
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 Protokoll, das Sie löschen möchten, auf dem lokalen Computer befindet. Sie können jedes Protokoll auf dem Computer löschen, sofern Sie über die entsprechenden Registrierungsberechtigungen verfügen.

Delete entfernt das von logName angegebene Protokoll vom lokalen Computer. Wenn Sie nur die Quelle löschen möchten, die für ein 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 zu erstellen, um eine der EventLog 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 ereignisbasierten Quellen, die für dieses Protokoll registriert sind. 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 nicht registrieren und andere Benutzer ohne Angabe eines Protokollnamens in eine Ereignisquelle schreiben, wird die Ereignisquelle im Anwendungsereignisprotokoll erstellt. Daher schreiben Anwendungen, die zuvor Einträge in das Protokoll schreiben konnten, das Sie gelöscht und neu erstellt haben, stattdessen in das Anwendungsprotokoll, da es jetzt die Ereignisquelle enthält.

Hinweis

Das Erneute Erstellen eines Ereignisprotokolls kann schwierig sein. Vermeiden Sie das Löschen von vom System erstellten Ereignisprotokollen, z. B. das Anwendungsprotokoll.

Wenn Sie ein Protokoll über einen Aufruf von löschen, Delete werden die in diesem Protokoll registrierten Quellen automatisch gelöscht. Dies kann dazu führen, dass andere Anwendungen, die dieses Protokoll verwenden, nicht mehr funktionsfähig sind.

Weitere Informationen

Gilt für: