EventLog.DeleteEventSource メソッド

定義

アプリケーションのイベント ソース登録をイベント ログから削除します。

オーバーロード

名前 説明
DeleteEventSource(String)

ローカル コンピューターのイベント ログからイベント ソースの登録を削除します。

DeleteEventSource(String, String)

指定したコンピューターからアプリケーションのイベント ソース登録を削除します。

DeleteEventSource(String)

ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs

ローカル コンピューターのイベント ログからイベント ソースの登録を削除します。

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 パラメーターは、ローカル コンピューターのレジストリに存在しません。

-又は-

イベント ログのレジストリ キーに対する書き込みアクセス権がありません。

次の例では、ローカル コンピューターからソースを削除します。 この例では、ソースからログを決定し、ログを削除します。

Note

複数のソースがイベント ログに書き込む場合があります。 カスタム ログを削除する前に、そのログに書き込む他のソースがないことを確認します。

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 は、ローカル コンピューター上のレジストリにアクセスし、イベントの有効なソースとしてのアプリケーションの登録を削除します。

そのログにエントリを書き込む必要がなくなった場合は、コンポーネントをイベントの有効なソースとして削除できます。 たとえば、コンポーネントをあるログから別のログに変更する必要がある場合に、これを行うことができます。 ソースは一度に 1 つのログにのみ登録できるため、ログを変更するには、現在の登録を削除する必要があります。

DeleteEventSource では、ログに登録されているソースのみが削除されます。 ログ自体を削除する場合は、 Deleteを呼び出します。 ログ エントリのみを削除する場合は、 Clearを呼び出します。 Delete DeleteEventSourcestaticメソッドであるため、クラス自体で呼び出すことができます。 どちらのメソッドも呼び出すために EventLog のインスタンスを作成する必要はありません。

Deleteを呼び出してログを削除すると、そのログに登録されているソースが自動的に削除されます。 これにより、そのログを使用する他のアプリケーションが動作不能になる可能性があります。

Note

ソースが既にログにマップされていて、それを新しいログに再マップする場合は、変更を有効にするためにコンピューターを再起動する必要があります。

こちらもご覧ください

適用対象

DeleteEventSource(String, String)

ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs

指定したコンピューターからアプリケーションのイベント ソース登録を削除します。

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

パラメーター

source
String

アプリケーションがイベント ログ システムに登録される名前。

machineName
String

登録を削除するコンピューターの名前。ローカル コンピューターの場合は "." です。

例外

machineName パラメーターが無効です。

-又は-

source パラメーターは、指定したコンピューターのレジストリに存在しません。

-又は-

イベント ログのレジストリ キーに対する書き込みアクセス権がありません。

source レジストリでは、 source の親レジストリ キーに同じ名前のサブキーが含まれていないため、削除できません。

次の例では、指定したコンピューターからソースを削除します。 この例では、ソースからログを決定し、ログを削除します。

Note

複数のソースがイベント ログに書き込む場合があります。 カスタム ログを削除する前に、そのログに書き込む他のソースがないことを確認します。

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 によって指定されたコンピューター上のレジストリにアクセスし、アプリケーションの登録をイベントの有効なソースとして削除します。

そのログにエントリを書き込む必要がなくなった場合は、コンポーネントをイベントの有効なソースとして削除できます。 たとえば、コンポーネントをあるログから別のログに変更する必要がある場合に、これを行うことができます。 ソースは一度に 1 つのログにのみ登録できるため、ログを変更するには、現在の登録を削除する必要があります。

DeleteEventSource では、ログに登録されているソースのみが削除されます。 ログ自体を削除する場合は、 Deleteを呼び出します。 ログ エントリのみを削除する場合は、 Clearを呼び出します。 Delete DeleteEventSourcestaticメソッドであるため、クラス自体で呼び出すことができます。 どちらのメソッドも呼び出すために EventLog のインスタンスを作成する必要はありません。

Deleteを呼び出してログを削除すると、そのログに登録されているソースが自動的に削除されます。 これにより、そのログを使用する他のアプリケーションが動作不能になる可能性があります。

Note

ソースが既にログにマップされていて、それを新しいログに再マップする場合は、変更を有効にするためにコンピューターを再起動する必要があります。

こちらもご覧ください

適用対象