EventLog.DeleteEventSource 方法

定義

將應用程式的事件來源登錄從事件記錄檔移除。

多載

DeleteEventSource(String)

將事件來源登錄從本機電腦的事件記錄檔移除。

DeleteEventSource(String, String)

將應用程式的事件來源登錄從指定的電腦移除。

DeleteEventSource(String)

將事件來源登錄從本機電腦的事件記錄檔移除。

public:
 static void DeleteEventSource(System::String ^ source);
public static void DeleteEventSource (string source);
static member DeleteEventSource : string -> unit
Public Shared Sub DeleteEventSource (source As String)

參數

source
String

應用程式在事件記錄檔系統中登錄的名稱。

例外狀況

本機電腦的登錄中沒有 source 參數。

-或- 您沒有事件記錄檔登錄機碼的寫入權限。

範例

下列範例會從本機電腦刪除來源。 此範例會從其來源判斷記錄檔,然後刪除記錄檔。

注意

多個來源可能會寫入事件記錄檔。 刪除自訂記錄檔之前,請確定沒有其他來源寫入該記錄檔。

#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

備註

使用這個方法可從本機電腦移除 的 Source 註冊。 DeleteEventSource 存取本機電腦上的登錄,並移除應用程式註冊為有效的事件來源。

如果您不再需要元件將專案寫入該記錄檔,您可以移除元件作為有效的事件來源。 例如,如果您需要將元件從一個記錄檔變更為另一個記錄檔,則可以這麼做。 因為來源一次只能註冊到一個記錄檔,所以變更記錄需要您移除目前的註冊。

DeleteEventSource 只會移除註冊至記錄檔的來源。 如果您想要移除記錄檔本身,請呼叫 Delete 。 如果您只想要刪除記錄專案,請呼叫 ClearDeleteDeleteEventSourcestatic 方法,因此可以在類別本身上呼叫它們。 不需要建立 的 EventLog 實例來呼叫任一方法。

透過呼叫 刪除記錄檔,以 Delete 自動刪除註冊至該記錄的來源。 這可能會讓其他應用程式使用該登入。

注意

如果來源已經對應到記錄檔,而且您重新將它對應到新的記錄檔,您必須重新開機電腦,變更才會生效。

另請參閱

適用於

DeleteEventSource(String, String)

將應用程式的事件來源登錄從指定的電腦移除。

public:
 static void DeleteEventSource(System::String ^ source, System::String ^ machineName);
public static void DeleteEventSource (string source, string machineName);
[System.MonoNotSupported("remote machine is not supported")]
public static void DeleteEventSource (string source, string machineName);
static member DeleteEventSource : string * string -> unit
[<System.MonoNotSupported("remote machine is not supported")>]
static member DeleteEventSource : string * string -> unit
Public Shared Sub DeleteEventSource (source As String, machineName As String)

參數

source
String

應用程式在事件記錄檔系統中登錄的名稱。

machineName
String

要移除登錄的電腦名稱,或者表示本機電腦的 "."。

屬性
MonoNotSupportedAttribute

例外狀況

machineName 參數無效。

-或- 指定電腦的登錄中沒有 source 參數。

-或- 您沒有事件記錄檔登錄機碼的寫入權限。

無法刪除 source,因為在登錄中,source 的父登錄機碼並未包含具有相同名稱的子機碼 (Subkey)。

範例

下列範例會從指定的電腦刪除來源。 此範例會從其來源判斷記錄檔,然後刪除記錄檔。

注意

多個來源可能會寫入事件記錄檔。 刪除自訂記錄檔之前,請確定沒有其他來源寫入該記錄檔。

#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

備註

使用此多載從遠端電腦移除 的 Source 註冊。 DeleteEventSource 存取 所 machineName 指定電腦上的登錄,並移除應用程式註冊為有效的事件來源。

如果您不再需要元件將專案寫入該記錄檔,您可以移除元件作為有效的事件來源。 例如,如果您需要將元件從一個記錄檔變更為另一個記錄檔,則可以這麼做。 因為來源一次只能註冊到一個記錄檔,所以變更記錄需要您移除目前的註冊。

DeleteEventSource 只會移除註冊至記錄檔的來源。 如果您想要移除記錄檔本身,請呼叫 Delete 。 如果您只想要刪除記錄專案,請呼叫 ClearDeleteDeleteEventSourcestatic 方法,因此可以在類別本身上呼叫它們。 不需要建立 的 EventLog 實例來呼叫任一方法。

透過呼叫 刪除記錄檔,以 Delete 自動刪除註冊至該記錄的來源。 這可能會讓其他應用程式使用該登入。

注意

如果來源已經對應到記錄檔,而且您重新將它對應到新的記錄檔,您必須重新開機電腦,變更才會生效。

另請參閱

適用於