Freigeben über


EventLog.DeleteEventSource Methode

Definition

Entfernt die Registrierung der Ereignisquellen einer Anwendung aus dem Ereignisprotokoll.

Überlädt

DeleteEventSource(String)

Entfernt die Registrierung der Ereignisquelle aus dem Ereignisprotokoll auf dem lokalen Computer.

DeleteEventSource(String, String)

Entfernt die Registrierung der Ereignisquellen einer Anwendung auf dem angegebenen Computer.

DeleteEventSource(String)

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

Entfernt die Registrierung der Ereignisquelle aus dem Ereignisprotokoll auf dem lokalen Computer.

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

Parameter

source
String

Der Name, unter dem die Anwendung im Ereignisprotokollsystem registriert ist.

Ausnahmen

Der source-Parameter ist in der Registrierung des lokalen Computers nicht vorhanden.

- oder -

Sie verfügen nicht über Schreibzugriff auf den Registrierungsschlüssel für das Ereignisprotokoll.

Beispiele

Im folgenden Beispiel wird eine Quelle vom lokalen Computer gelöscht. Das Beispiel bestimmt das Protokoll aus seiner Quelle und löscht dann das Protokoll.

Hinweis

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

#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, um die Registrierung eines Source vom lokalen Computer zu entfernen. DeleteEventSource greift auf die Registrierung auf dem lokalen Computer zu und entfernt die Registrierung Ihrer Anwendung als gültige Ereignisquelle.

Sie können Ihre Komponente als gültige Ereignisquelle entfernen, wenn Sie sie nicht mehr zum Schreiben von Einträgen in dieses Protokoll benötigen. Dies können Sie beispielsweise tun, wenn Sie Ihre Komponente von einem Protokoll in ein anderes ändern müssen. Da eine Quelle jeweils nur für ein Protokoll registriert werden kann, müssen Sie zum Ändern des Protokolls die aktuelle Registrierung entfernen.

DeleteEventSource entfernt nur die Quelle, die in einem Protokoll registriert ist. Wenn Sie das Protokoll selbst entfernen möchten, rufen Sie auf Delete. 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 instance von EventLog zu erstellen, um beide Methoden aufzurufen.

Durch das Löschen eines Protokolls über einen Aufruf von Delete werden die in diesem Protokoll registrierten Quellen automatisch gelöscht. Dadurch können andere Anwendungen, die dieses Protokoll verwenden, in Betrieb nehmen.

Hinweis

Wenn eine Quelle bereits einem Protokoll zugeordnet wurde und Sie sie einem neuen Protokoll zuordnen, müssen Sie den Computer neu starten, damit die Änderungen wirksam werden.

Weitere Informationen

Gilt für:

DeleteEventSource(String, String)

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

Entfernt die Registrierung der Ereignisquellen einer Anwendung auf dem angegebenen Computer.

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

Parameter

source
String

Der Name, unter dem die Anwendung im Ereignisprotokollsystem registriert ist.

machineName
String

Der Name des Computers, auf dem der Registrierungseintrag gelöscht werden soll, oder "." für den lokalen Computer.

Ausnahmen

Der machineName-Parameter ist ungültig.

- oder -

Der source-Parameter ist in der Registrierung des angegebenen Computers nicht vorhanden.

- oder -

Sie verfügen nicht über Schreibzugriff auf den Registrierungsschlüssel für das Ereignisprotokoll.

source kann nicht gelöscht werden, da in der Registrierung der übergeordnete Schlüssel für source keinen Unterschlüssel mit demselben Namen enthält.

Beispiele

Im folgenden Beispiel wird eine Quelle vom angegebenen Computer gelöscht. Das Beispiel bestimmt das Protokoll aus seiner Quelle und löscht dann das Protokoll.

Hinweis

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

#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 Überladung, um die Registrierung eines Source von einem Remotecomputer zu entfernen. DeleteEventSource greift auf die Registrierung auf dem von machineName angegebenen Computer zu und entfernt die Registrierung Ihrer Anwendung als gültige Ereignisquelle.

Sie können Ihre Komponente als gültige Ereignisquelle entfernen, wenn Sie sie nicht mehr zum Schreiben von Einträgen in dieses Protokoll benötigen. Dies können Sie beispielsweise tun, wenn Sie Ihre Komponente von einem Protokoll in ein anderes ändern müssen. Da eine Quelle jeweils nur für ein Protokoll registriert werden kann, müssen Sie zum Ändern des Protokolls die aktuelle Registrierung entfernen.

DeleteEventSource entfernt nur die Quelle, die in einem Protokoll registriert ist. Wenn Sie das Protokoll selbst entfernen möchten, rufen Sie auf Delete. 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 instance von EventLog zu erstellen, um beide Methoden aufzurufen.

Durch das Löschen eines Protokolls über einen Aufruf von Delete werden die in diesem Protokoll registrierten Quellen automatisch gelöscht. Dadurch können andere Anwendungen, die dieses Protokoll verwenden, in Betrieb nehmen.

Hinweis

Wenn eine Quelle bereits einem Protokoll zugeordnet wurde und Sie sie einem neuen Protokoll zuordnen, müssen Sie den Computer neu starten, damit die Änderungen wirksam werden.

Weitere Informationen

Gilt für: