Udostępnij za pośrednictwem


EventLog.Delete Metoda

Definicja

Usuwa zasób dziennika.

Przeciążenia

Delete(String, String)

Usuwa dziennik zdarzeń z określonego komputera.

Delete(String)

Usuwa dziennik zdarzeń z komputera lokalnego.

Delete(String, String)

Źródło:
EventLog.cs
Źródło:
EventLog.cs
Źródło:
EventLog.cs

Usuwa dziennik zdarzeń z określonego komputera.

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

Nazwa dziennika do usunięcia. Możliwe wartości to: Aplikacja, Zabezpieczenia, System i wszystkie niestandardowe dzienniki zdarzeń na określonym komputerze.

machineName
String

Nazwa komputera do usunięcia dziennika z lub "." dla komputera lokalnego.

Wyjątki

logName jest pustym ciągiem ("") lub null.

-lub-

machineName jest nieprawidłową nazwą komputera.

Nie można otworzyć klucza rejestru dziennika zdarzeń na określonym komputerze.

-lub-

Dziennik nie istnieje na określonym komputerze.

Dziennik zdarzeń nie został pomyślnie wyczyszczone.

-lub-

Nie można otworzyć dziennika. Kod błędu systemu Windows jest niedostępny.

Przykłady

Poniższy przykład usuwa dziennik z określonego komputera. Przykład określa dziennik z jego źródła.

Uwaga

Więcej niż jedno źródło może zapisywać w dzienniku zdarzeń. Przed usunięciem dziennika niestandardowego upewnij się, że w tym dzienniku nie ma żadnych innych źródeł zapisu.

#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

Uwagi

Użyj tej metody, gdy dziennik, który chcesz usunąć, znajduje się na komputerze zdalnym. Możesz usunąć dowolny dziennik na komputerze, pod warunkiem, że masz odpowiednie uprawnienia do rejestru.

Delete usuwa dziennik określony przez logName program z komputera określonego przez machineName. Jeśli chcesz usunąć tylko źródło zarejestrowane w dzienniku, wywołaj metodę DeleteEventSource. Jeśli chcesz usunąć tylko wpisy dziennika, wywołaj metodę Clear. Delete i DeleteEventSourcestatic metodami, więc można je wywołać na samej klasie. Nie jest konieczne utworzenie wystąpienia EventLog klasy , aby wywołać jedną z tych metod.

Ta metoda najpierw usuwa plik, który przechowuje zawartość dziennika. Następnie uzyskuje dostęp do rejestru i usuwa wszystkie źródła zdarzeń zarejestrowane dla tego dziennika. Jeśli ponownie utworzysz dziennik w późniejszym momencie, należy ponownie zarejestrować źródła zdarzeń, jeśli mają być ponownie używane. Jeśli nie zarejestrujesz źródeł zdarzeń, a inni użytkownicy będą zapisywać dane w źródle zdarzeń bez określania nazwy dziennika, źródło zdarzeń zostanie utworzone w dzienniku zdarzeń aplikacji. W związku z tym aplikacje, które wcześniej mogły zapisywać wpisy w dzienniku, który został usunięty, i ponownie utworzone, będą zamiast tego zapisywać w dzienniku aplikacji, ponieważ teraz zawiera źródło zdarzeń.

Uwaga

Ponowne utworzenie dziennika zdarzeń może być trudnym procesem. Unikaj usuwania dowolnych dzienników zdarzeń utworzonych przez system, takich jak dziennik aplikacji.

Usunięcie dziennika za pomocą wywołania w celu Delete automatycznego usunięcia źródeł zarejestrowanych w tym dzienniku. Może to sprawić, że inne aplikacje będą korzystać z tej operacji logowania.

Zobacz też

Dotyczy

Delete(String)

Źródło:
EventLog.cs
Źródło:
EventLog.cs
Źródło:
EventLog.cs

Usuwa dziennik zdarzeń z komputera lokalnego.

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

Nazwa dziennika do usunięcia. Możliwe wartości to: Aplikacja, Zabezpieczenia, System i wszystkie niestandardowe dzienniki zdarzeń na komputerze.

Wyjątki

logName jest pustym ciągiem ("") lub null.

Nie można otworzyć klucza rejestru dziennika zdarzeń na komputerze lokalnym.

-lub-

Dziennik nie istnieje na komputerze lokalnym.

Dziennik zdarzeń nie został pomyślnie wyczyszczone.

-lub-

Nie można otworzyć dziennika. Kod błędu systemu Windows jest niedostępny.

Przykłady

Poniższy przykład usuwa dziennik z komputera lokalnego. Przykład określa dziennik z jego źródła.

Uwaga

Więcej niż jedno źródło może zapisywać w dzienniku zdarzeń. Przed usunięciem dziennika niestandardowego upewnij się, że w tym dzienniku nie ma żadnych innych źródeł zapisu.

#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

Uwagi

Użyj tej metody, gdy dziennik, który chcesz usunąć, znajduje się na komputerze lokalnym. Możesz usunąć dowolny dziennik na komputerze, pod warunkiem, że masz odpowiednie uprawnienia do rejestru.

Delete usuwa dziennik określony przez logName program z komputera lokalnego. Jeśli chcesz usunąć tylko źródło zarejestrowane w dzienniku, wywołaj metodę DeleteEventSource. Jeśli chcesz usunąć tylko wpisy dziennika, wywołaj metodę Clear. Delete i DeleteEventSourcestatic metodami, więc można je wywołać na samej klasie. Nie jest konieczne utworzenie nowego wystąpienia EventLog metody w celu wywołania żadnej z tych metod.

Metoda Delete najpierw usuwa plik, który przechowuje zawartość dziennika. Następnie uzyskuje dostęp do rejestru i usuwa wszystkie źródła zdarzeń zarejestrowane dla tego dziennika. Jeśli ponownie utworzysz dziennik w późniejszym momencie, należy ponownie zarejestrować źródła zdarzeń, jeśli mają być ponownie używane. Jeśli nie zarejestrujesz źródeł zdarzeń, a inni użytkownicy będą zapisywać dane w źródle zdarzeń bez określania nazwy dziennika, źródło zdarzeń zostanie utworzone w dzienniku zdarzeń aplikacji. W związku z tym aplikacje, które wcześniej mogły zapisywać wpisy w dzienniku, który został usunięty, i ponownie utworzone, będą zamiast tego zapisywać w dzienniku aplikacji, ponieważ teraz zawiera źródło zdarzeń.

Uwaga

Ponowne utworzenie dziennika zdarzeń może być trudnym procesem. Unikaj usuwania dowolnych dzienników zdarzeń utworzonych przez system, takich jak dziennik aplikacji.

Usunięcie dziennika za pomocą wywołania w celu Delete automatycznego usunięcia źródeł zarejestrowanych w tym dzienniku. Może to sprawić, że inne aplikacje będą korzystać z tej operacji logowania.

Zobacz też

Dotyczy