Windowsのイベントログを削除するには、EventLog.Deleteメソッドを使います。また、イベントログのイベントソースだけを削除するには、EventLog.DeleteEventSourceメソッドを使います。さらに、イベントログのすべてのエントリを削除するには、EventLog.Clearメソッドを使います。
なおWindows Vista以降でUACが有効になっている時は、管理者に昇格しないと失敗するかもしれません。この対処法については、「Vista以降でUACが有効だとファイルの作成等に失敗する問題の対処法」をご覧ください。
以下の例では、ローカルコンピュータ上の「MyLog」という名前のイベントログを削除しています。
'削除するイベントログ名 Dim logName As String = "MyLog" 'コンピュータ名("."はローカルコンピュータ) Dim machineName As String = "." '削除するイベントログが存在するか調べる If System.Diagnostics.EventLog.Exists(logName, machineName) Then 'イベントログを削除する System.Diagnostics.EventLog.Delete(logName, machineName) End If
//削除するイベントログ名 string logName = "MyLog"; //コンピュータ名("."はローカルコンピュータ) string machineName = "."; //削除するイベントログが存在するか調べる if (System.Diagnostics.EventLog.Exists(logName, machineName)) { //イベントログを削除する System.Diagnostics.EventLog.Delete(logName, machineName); }
次の例では、ローカルコンピュータ上の「MySource」という名前のイベントソースを削除しています。
'削除するイベントソース名 Dim sourceName As String = "MySource" 'コンピュータ名("."はローカルコンピュータ) Dim machineName As String = "." '削除するイベントソースが存在するか調べる If System.Diagnostics.EventLog.SourceExists(sourceName, machineName) Then 'イベントソースを削除する System.Diagnostics.EventLog.DeleteEventSource(sourceName, machineName) End If
//削除するイベントソース名 string sourceName = "MySource"; //コンピュータ名("."はローカルコンピュータ) string machineName = "."; //削除するイベントソースが存在するか調べる if (System.Diagnostics.EventLog.SourceExists(sourceName, machineName)) { //イベントソースを削除する System.Diagnostics.EventLog.DeleteEventSource(sourceName, machineName); }
次の例では、ローカルコンピュータ上の「MyLog」という名前のイベントログにあるすべてのエントリを削除しています。
'すべてのエントリを削除するイベントログ名 Dim logName As String = "MyLog" 'コンピュータ名("."はローカルコンピュータ) Dim machineName As String = "." 'イベントログが存在するか調べる If System.Diagnostics.EventLog.Exists(logName, machineName) Then 'EventLogオブジェクトを作成する Dim log As System.Diagnostics.EventLog = New EventLog(logName, machineName) 'すべてのエントリを削除する log.Clear() '閉じる log.Close() End If
//すべてのエントリを削除するイベントログ名 string logName = "MyLog"; //コンピュータ名("."はローカルコンピュータ) string machineName = "."; //イベントログが存在するか調べる if (System.Diagnostics.EventLog.Exists(logName, machineName)) { //EventLogオブジェクトを作成する System.Diagnostics.EventLog log = new EventLog(logName, machineName); //すべてのエントリを削除する log.Clear(); //閉じる log.Close(); }