EventLog.Delete Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für