EventLog.Delete 方法

定義

移除記錄檔資源。

多載

Delete(String, String)

將事件記錄檔從指定的電腦移除。

Delete(String)

將事件記錄檔從本機電腦移除。

Delete(String, String)

來源:
EventLog.cs
來源:
EventLog.cs
來源:
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)

來源:
EventLog.cs
來源:
EventLog.cs
來源:
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 自動刪除註冊至該記錄的來源。 這可能會讓其他應用程式使用該登入。

另請參閱

適用於