Partilhar via


EventLog.Delete Método

Definição

Remove um recurso de log.

Sobrecargas

Delete(String, String)

Remove um log de eventos do computador especificado.

Delete(String)

Remove um log de eventos do computador local.

Delete(String, String)

Origem:
EventLog.cs
Origem:
EventLog.cs
Origem:
EventLog.cs

Remove um log de eventos do computador especificado.

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)

Parâmetros

logName
String

O nome do log a ser excluído. Os valores possíveis incluem: Aplicativo, Segurança, Sistema e quaisquer outros logs de eventos personalizados no computador especificado.

machineName
String

O nome do computador a ser excluído do log ou "." para o computador local.

Exceções

logName é uma cadeia de caracteres vazia ("") ou null.

- ou -

machineName não é um nome do computador válido.

Não foi possível abrir a chave do Registro do log de eventos no computador especificado.

- ou -

O log não existe no computador especificado.

Não foi possível limpar o log de eventos.

- ou -

Não é possível abrir o log. Um código de erro do Windows não está disponível.

Exemplos

O exemplo a seguir exclui um log do computador especificado. O exemplo determina o log de sua origem.

Observação

Mais de uma fonte pode gravar em um log de eventos. Antes de excluir um log personalizado, verifique se não há outras fontes gravando nesse log.

#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

Comentários

Use esse método quando o log que você deseja excluir estiver em um computador remoto. Você pode excluir qualquer log no computador, desde que tenha as permissões apropriadas do Registro.

Delete remove o log especificado pelo logName do computador especificado por machineName. Se você quiser excluir apenas a origem registrada em um log, chame DeleteEventSource. Se você quiser apenas excluir as entradas de log, chame Clear. Delete e DeleteEventSource são static métodos, para que possam ser chamados na própria classe. Não é necessário criar uma instância de EventLog para chamar qualquer método.

Esse método primeiro exclui o arquivo que contém o conteúdo do log. Em seguida, ele acessa o registro e remove todas as fontes de evento registradas para esse log. Se você recriar o log em um ponto posterior, deverá registrar as fontes de evento novamente, se elas forem reutilizados. Se você não registrar as fontes de evento e outros usuários gravarem em uma fonte de evento sem especificar um nome de log, a origem do evento será criada no log de eventos do aplicativo. Portanto, os aplicativos que anteriormente eram capazes de gravar entradas no log que você excluiu e recriou gravarão no log do aplicativo, pois agora ele contém a origem do evento.

Observação

Recriar um log de eventos pode ser um processo difícil. Evite excluir qualquer um dos logs de eventos criados pelo sistema, como o log do aplicativo.

Excluir um log por meio de uma chamada para Delete excluir automaticamente as fontes registradas nesse log. Isso pode tornar outros aplicativos usando esse log inoperante.

Confira também

Aplica-se a

Delete(String)

Origem:
EventLog.cs
Origem:
EventLog.cs
Origem:
EventLog.cs

Remove um log de eventos do computador local.

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)

Parâmetros

logName
String

O nome do log a ser excluído. Os valores possíveis incluem: log de aplicativo, segurança, sistema e quaisquer outros logs de eventos personalizados no computador.

Exceções

logName é uma cadeia de caracteres vazia ("") ou null.

Não foi possível abrir a chave do Registro do log de eventos no computador local.

- ou -

O log não existe no computador local.

Não foi possível limpar o log de eventos.

- ou -

Não é possível abrir o log. Um código de erro do Windows não está disponível.

Exemplos

O exemplo a seguir exclui um log do computador local. O exemplo determina o log de sua origem.

Observação

Mais de uma fonte pode gravar em um log de eventos. Antes de excluir um log personalizado, verifique se não há outras fontes gravando nesse log.

#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

Comentários

Use esse método quando o log que você deseja excluir estiver no computador local. Você pode excluir qualquer log no computador, desde que tenha as permissões apropriadas do Registro.

Delete remove o log especificado pelo logName do computador local. Se você quiser excluir apenas a origem registrada em um log, chame DeleteEventSource. Se você quiser apenas excluir as entradas de log, chame Clear. Delete e DeleteEventSource são static métodos, para que possam ser chamados na própria classe. Não é necessário criar uma nova instância de EventLog para chamar qualquer método.

O Delete método primeiro exclui o arquivo que contém o conteúdo do log. Em seguida, ele acessa o registro e remove todas as fontes de evento registradas para esse log. Se você recriar o log em um ponto posterior, deverá registrar as fontes de evento novamente, se elas forem reutilizados. Se você não registrar as fontes de evento e outros usuários gravarem em uma fonte de evento sem especificar um nome de log, a origem do evento será criada no log de eventos do aplicativo. Portanto, os aplicativos que anteriormente eram capazes de gravar entradas no log que você excluiu e recriou gravarão no log do aplicativo, pois agora ele contém a origem do evento.

Observação

Recriar um log de eventos pode ser um processo difícil. Evite excluir qualquer um dos logs de eventos criados pelo sistema, como o log do aplicativo.

Excluir um log por meio de uma chamada para Delete excluir automaticamente as fontes registradas nesse log. Isso pode tornar outros aplicativos usando esse log inoperante.

Confira também

Aplica-se a