Sdílet prostřednictvím


EventLog.Delete Metoda

Definice

Odebere prostředek protokolu.

Přetížení

Delete(String, String)

Odebere protokol událostí ze zadaného počítače.

Delete(String)

Odebere protokol událostí z místního počítače.

Delete(String, String)

Zdroj:
EventLog.cs
Zdroj:
EventLog.cs
Zdroj:
EventLog.cs

Odebere protokol událostí ze zadaného počítače.

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)

Parametry

logName
String

Název protokolu, který se má odstranit. Mezi možné hodnoty patří: Aplikace, Zabezpečení, Systém a všechny vlastní protokoly událostí v zadaném počítači.

machineName
String

Název počítače, ze který se má protokol odstranit, nebo "." pro místní počítač.

Výjimky

logName je prázdný řetězec ("") nebo null.

-nebo-

machineName není platný název počítače.

Klíč registru pro protokol událostí nelze v zadaném počítači otevřít.

-nebo-

Protokol v zadaném počítači neexistuje.

Protokol událostí se nevymazal úspěšně.

-nebo-

Protokol nelze otevřít. Kód chyby systému Windows není k dispozici.

Příklady

Následující příklad odstraní protokol ze zadaného počítače. Příklad určuje protokol ze svého zdroje.

Poznámka

Do protokolu událostí může zapisovat více než jeden zdroj. Před odstraněním vlastního protokolu se ujistěte, že do tohoto protokolu nejsou zapisují žádné další zdroje.

#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

Poznámky

Tuto metodu použijte, pokud se protokol, který chcete odstranit, nachází ve vzdáleném počítači. Za předpokladu, že máte příslušná oprávnění registru, můžete odstranit jakýkoli protokol v počítači.

Delete odebere protokol určený nástrojem logName z počítače určeného nástrojem machineName. Pokud chcete odstranit pouze zdroj zaregistrovaný v protokolu, zavolejte DeleteEventSource. Pokud chcete odstranit pouze položky protokolu, zavolejte Clear. Delete a DeleteEventSource jsou static metody, takže je lze volat v samotné třídě. Není nutné vytvářet instanci EventLog pro volání některé z metod.

Tato metoda nejprve odstraní soubor, který obsahuje obsah protokolu. Potom přejde do registru a odebere všechny zdroje událostí zaregistrované pro tento protokol. Pokud později znovu vytvoříte protokol, měli byste zdroje událostí zaregistrovat znovu, pokud je chcete znovu použít. Pokud nezaregistrujete zdroje událostí a ostatní uživatelé zapisují do zdroje událostí bez zadání názvu protokolu, zdroj událostí se vytvoří v protokolu událostí aplikace. Proto aplikace, které dříve dokázaly zapisovat položky do protokolu, který jste odstranili a znovu vytvořili, budou místo toho zapisovat do protokolu aplikací, protože teď obsahuje zdroj událostí.

Poznámka

Opětovné vytvoření protokolu událostí může být obtížný proces. Neodstraňujte žádné protokoly událostí vytvořené systémem, například protokol aplikace.

Odstraněním protokolu prostřednictvím volání se Delete automaticky odstraní zdroje zaregistrované v daném protokolu. To může mít za následek, že jiné aplikace, které používají tento protokol, budou nefunkční.

Viz také

Platí pro

Delete(String)

Zdroj:
EventLog.cs
Zdroj:
EventLog.cs
Zdroj:
EventLog.cs

Odebere protokol událostí z místního počítače.

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)

Parametry

logName
String

Název protokolu, který se má odstranit. Mezi možné hodnoty patří: Aplikace, Zabezpečení, Systém a všechny vlastní protokoly událostí v počítači.

Výjimky

logName je prázdný řetězec ("") nebo null.

Klíč registru pro protokol událostí nelze otevřít v místním počítači.

-nebo-

Protokol v místním počítači neexistuje.

Protokol událostí se nevymazal úspěšně.

-nebo-

Protokol nelze otevřít. Kód chyby systému Windows není k dispozici.

Příklady

Následující příklad odstraní protokol z místního počítače. Příklad určuje protokol ze svého zdroje.

Poznámka

Do protokolu událostí může zapisovat více než jeden zdroj. Před odstraněním vlastního protokolu se ujistěte, že do tohoto protokolu nejsou zapisují žádné další zdroje.

#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

Poznámky

Tuto metodu použijte, pokud se protokol, který chcete odstranit, nachází v místním počítači. Za předpokladu, že máte příslušná oprávnění registru, můžete odstranit jakýkoli protokol v počítači.

Delete odebere protokol určený nástrojem logName z místního počítače. Pokud chcete odstranit pouze zdroj zaregistrovaný v protokolu, zavolejte DeleteEventSource. Pokud chcete odstranit pouze položky protokolu, zavolejte Clear. Delete a DeleteEventSource jsou static metody, takže je lze volat v samotné třídě. Není nutné vytvářet novou instanci EventLog pro volání některé z metod.

Metoda Delete nejprve odstraní soubor, který obsahuje obsah protokolu. Potom přejde do registru a odebere všechny zdroje událostí zaregistrované pro tento protokol. Pokud později znovu vytvoříte protokol, měli byste zdroje událostí zaregistrovat znovu, pokud je chcete znovu použít. Pokud nezaregistrujete zdroje událostí a ostatní uživatelé zapisují do zdroje událostí bez zadání názvu protokolu, zdroj událostí se vytvoří v protokolu událostí aplikace. Proto aplikace, které dříve dokázaly zapisovat položky do protokolu, který jste odstranili a znovu vytvořili, budou místo toho zapisovat do protokolu aplikací, protože teď obsahuje zdroj událostí.

Poznámka

Opětovné vytvoření protokolu událostí může být obtížný proces. Neodstraňujte žádné protokoly událostí vytvořené systémem, například protokol aplikace.

Odstraněním protokolu prostřednictvím volání se Delete automaticky odstraní zdroje zaregistrované v daném protokolu. To může mít za následek, že jiné aplikace, které používají tento protokol, budou nefunkční.

Viz také

Platí pro