EventLog.Delete 方法  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
移除日志资源。
重载
| 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 -> unitPublic Shared Sub Delete (logName As String, machineName As String)参数
- logName
- String
要删除的日志的名称。 可能的值包括:“应用程序”、“安全”、“系统”和指定计算机上的任何自定义事件日志。
- machineName
- String
要从中删除日志的计算机名称,对于本地计算机则为“.”。
例外
示例
以下示例从指定计算机中删除日志。 该示例从其源确定日志。
注意
多个源可能会写入事件日志。 删除自定义日志之前,请确保没有其他源写入该日志。
#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。 如果只想删除日志条目,请调用 Clear。 
              Delete 和 DeleteEventSource 是 static 方法,因此可以在类本身上调用它们。 无需创建 实例来调用任一 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 -> unitPublic Shared Sub Delete (logName As String)参数
- logName
- String
要删除的日志的名称。 可能的值包括:“应用程序”、“安全性”、“系统”和计算机上的任何自定义事件日志。
例外
              logName 为空字符串 ("") 或 null。
示例
以下示例从本地计算机中删除日志。 该示例从其源确定日志。
注意
多个源可能会写入事件日志。 删除自定义日志之前,请确保没有其他源写入该日志。
#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。 如果只想删除日志条目,请调用 Clear。 
              Delete 和 DeleteEventSource 是 static 方法,因此可以在类本身上调用它们。 无需创建新的 实例 EventLog 来调用任一方法。
方法 Delete 首先删除保存日志内容的文件。 然后,它会访问注册表并删除为该日志注册的所有事件源。 如果在以后重新创建日志,则应再次注册事件源(如果要重复使用)。 如果未注册事件源,其他用户在未指定日志名称的情况下写入事件源,则会在应用程序事件日志中创建事件源。 因此,以前能够将条目写入已删除和重新创建的日志的应用程序将改为写入应用程序日志,因为它现在包含事件源。
注意
重新创建事件日志可能是一个困难的过程。 避免删除任何系统创建的事件日志,例如应用程序日志。
通过调用 Delete 删除日志会自动删除注册到该日志的源。 这会使使用该日志的其他应用程序无法运行。