次の方法で共有


EventLog.DeleteEventSource メソッド (String)

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

Overloads Public Shared Sub DeleteEventSource( _
   ByVal source As String _)
[C#]
public static void DeleteEventSource(stringsource);
[C++]
public: static void DeleteEventSource(String* source);
[JScript]
public static function DeleteEventSource(
   source : String);

パラメータ

  • source
    イベント ログ システムにアプリケーションを登録するときに使用する名前。

例外

例外の種類 条件
ArgumentException ローカル コンピュータのレジストリに source パラメータがありません。
ArgumentException イベント ログのレジストリ キーに対する書き込みアクセス許可がありません。

解説

このメソッドは、ローカル コンピュータから Source の登録を削除するときに使用します。 DeleteEventSource は、ローカル コンピュータのレジストリにアクセスし、有効なイベント ソースとしてのアプリケーションの登録を削除します。

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

DeleteEventSource はログに登録されているソースだけを削除します。ログを削除する場合は Delete を呼び出します。ログ エントリの削除だけを行う場合は、 Clear を呼び出します。 DeleteDeleteEventSource は静的 (Visual Basic では Shared) メソッドであるため、クラス自体で呼び出すことができます。いずれのメソッドを呼び出す場合にも、 EventLog のインスタンスを作成する必要はありません。

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

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

使用例

[Visual Basic, C#, C++] ソースをローカル コンピュータから削除する例を次に示します。この例は、ソースからログの内容を判断してから、そのログを削除します。

[Visual Basic, C#, C++] メモ   イベント ログには複数のソースが書き込むことがあります。カスタム ログを削除する前に、そのログに書き込んでいるソースが他に存在しないことを確認してください。

 
Option Explicit
Option Strict

Imports System
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        Dim logName As String
        
        If EventLog.SourceExists("MyOldSource") Then
            ' Find the log associated with this source.    
            logName = EventLog.LogNameFromSourceName("MyOldSource", ".")
            
            ' Delete the source and the log.
            EventLog.DeleteEventSource("MyOldSource")
            EventLog.Delete(logName)
            
            Console.WriteLine((logName & " deleted."))
        End If
    End Sub 'Main
End Class 'MySample

[C#] 
using System;
using System.Diagnostics;
using System.Threading;
              
class MySample{

    public static void Main(){

         string logName;
       
        if(EventLog.SourceExists("MyOldSource")){
        // Find the log associated with this source.    
            logName = EventLog.LogNameFromSourceName("MyOldSource", ".");

        // Delete the source and the log.
            EventLog.DeleteEventSource("MyOldSource");
            EventLog.Delete(logName);
            
            Console.WriteLine(logName + " deleted.");    
        }                                                                        
    } 
}
   

[C++] 
#using <mscorlib.dll>
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;

int main(){

    String* logName;

    if(EventLog::SourceExists(S"MyOldSource")){
        // Find the log associated with this source.    
        logName = EventLog::LogNameFromSourceName(S"MyOldSource", S".");

        // Delete the source and the log.
        EventLog::DeleteEventSource(S"MyOldSource");
        EventLog::Delete(logName);

        Console::WriteLine(S"{0} deleted.", logName);    
    }                                                                        
} 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

EventLog クラス | EventLog メンバ | System.Diagnostics 名前空間 | EventLog.DeleteEventSource オーバーロードの一覧 | CreateEventSource | Source | SourceExists | Delete | Clear