ローカル コンピュータのイベント ログからイベント ソースの登録を削除します。
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 を呼び出します。 Delete と DeleteEventSource は静的 (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 セキュリティ:
- EventLogPermission (コンピュータ上のイベント ログ情報にアクセスするのに必要なアクセス許可)
- RegistryPermission (コンピュータ上のイベント ログ レジストリ情報にアクセスするのに必要なアクセス許可)
- SecurityPermission (完全信頼を指定して EventLog のメンバを呼び出すためのアクセス許可) PermissionState.Unrestricted (関連する列挙体)
参照
EventLog クラス | EventLog メンバ | System.Diagnostics 名前空間 | EventLog.DeleteEventSource オーバーロードの一覧 | CreateEventSource | Source | SourceExists | Delete | Clear