EventLog.Delete 方法

定义

移除日志资源。

重载

Delete(String, String)

从指定计算机上移除事件日志。

Delete(String)

从本地计算机上移除事件日志。

Delete(String, String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

从指定计算机上移除事件日志。

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)

参数

logName
String

要删除的日志的名称。 可能的值包括:“应用程序”、“安全”、“系统”和指定计算机上的任何自定义事件日志。

machineName
String

要从中删除日志的计算机名称,对于本地计算机则为“.”。

例外

logName 为空字符串 ("") 或 null

- 或 -

machineName 不是有效的计算机名称。

事件日志的注册表项未能在指定的计算机上打开。

- 或 -

指定的计算机上不存在该日志。

未成功清除事件日志。

- 或 -

无法打开日志。 一个 Windows 错误代码不可用。

示例

以下示例从指定计算机中删除日志。 该示例从其源确定日志。

注意

多个源可能会写入事件日志。 删除自定义日志之前,请确保没有其他源写入该日志。

#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

注解

如果要删除的日志位于远程计算机上,请使用此方法。 可以删除计算机上的任何日志,前提是你具有相应的注册表权限。

Delete 从 指定的计算机中删除 由 logNamemachineName指定的日志。 如果只想删除注册到日志的源,请调用 DeleteEventSource。 如果只想删除日志条目,请调用 ClearDeleteDeleteEventSourcestatic 方法,因此可以在类本身上调用它们。 无需创建 实例来调用任一 EventLog 方法。

此方法首先删除保存日志内容的文件。 然后,它会访问注册表并删除为该日志注册的所有事件源。 如果在以后重新创建日志,则应再次注册事件源(如果要重复使用)。 如果未注册事件源,其他用户在未指定日志名称的情况下写入事件源,则会在应用程序事件日志中创建事件源。 因此,以前能够将条目写入已删除和重新创建的日志的应用程序将改为写入应用程序日志,因为它现在包含事件源。

注意

重新创建事件日志可能是一个困难的过程。 避免删除任何系统创建的事件日志,例如应用程序日志。

通过调用 Delete 删除日志会自动删除注册到该日志的源。 这会使使用该日志的其他应用程序无法运行。

另请参阅

适用于

Delete(String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

从本地计算机上移除事件日志。

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)

参数

logName
String

要删除的日志的名称。 可能的值包括:“应用程序”、“安全性”、“系统”和计算机上的任何自定义事件日志。

例外

logName 为空字符串 ("") 或 null

事件日志的注册表项未能在本地计算机上打开。

- 或 -

本地计算机上不存在该日志。

未成功清除事件日志。

- 或 -

无法打开日志。 一个 Windows 错误代码不可用。

示例

以下示例从本地计算机中删除日志。 该示例从其源确定日志。

注意

多个源可能会写入事件日志。 删除自定义日志之前,请确保没有其他源写入该日志。

#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

注解

如果要删除的日志位于本地计算机上,请使用此方法。 可以删除计算机上的任何日志,前提是你具有相应的注册表权限。

Delete 从本地计算机中删除指定的 logName 日志。 如果只想删除注册到日志的源,请调用 DeleteEventSource。 如果只想删除日志条目,请调用 ClearDeleteDeleteEventSourcestatic 方法,因此可以在类本身上调用它们。 无需创建新的 实例 EventLog 来调用任一方法。

方法 Delete 首先删除保存日志内容的文件。 然后,它会访问注册表并删除为该日志注册的所有事件源。 如果在以后重新创建日志,则应再次注册事件源(如果要重复使用)。 如果未注册事件源,其他用户在未指定日志名称的情况下写入事件源,则会在应用程序事件日志中创建事件源。 因此,以前能够将条目写入已删除和重新创建的日志的应用程序将改为写入应用程序日志,因为它现在包含事件源。

注意

重新创建事件日志可能是一个困难的过程。 避免删除任何系统创建的事件日志,例如应用程序日志。

通过调用 Delete 删除日志会自动删除注册到该日志的源。 这会使使用该日志的其他应用程序无法运行。

另请参阅

适用于