DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

イベントログを削除する

Windowsのイベントログを削除するには、EventLog.Deleteメソッドを使います。また、イベントログのイベントソースだけを削除するには、EventLog.DeleteEventSourceメソッドを使います。さらに、イベントログのすべてのエントリを削除するには、EventLog.Clearメソッドを使います。

なおWindows Vista以降でUACが有効になっている時は、管理者に昇格しないと失敗するかもしれません。この対処法については、「Vista以降でUACが有効だとファイルの作成等に失敗する問題の対処法」をご覧ください。

以下の例では、ローカルコンピュータ上の「MyLog」という名前のイベントログを削除しています。

VB.NET
コードを隠すコードを選択
'削除するイベントログ名
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
C#
コードを隠すコードを選択
//削除するイベントログ名
string logName = "MyLog";
//コンピュータ名("."はローカルコンピュータ)
string machineName = ".";

//削除するイベントログが存在するか調べる
if (System.Diagnostics.EventLog.Exists(logName, machineName))
{
    //イベントログを削除する
    System.Diagnostics.EventLog.Delete(logName, machineName);
}

次の例では、ローカルコンピュータ上の「MySource」という名前のイベントソースを削除しています。

VB.NET
コードを隠すコードを選択
'削除するイベントソース名
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
C#
コードを隠すコードを選択
//削除するイベントソース名
string sourceName = "MySource";
//コンピュータ名("."はローカルコンピュータ)
string machineName = ".";

//削除するイベントソースが存在するか調べる
if (System.Diagnostics.EventLog.SourceExists(sourceName, machineName))
{
    //イベントソースを削除する
    System.Diagnostics.EventLog.DeleteEventSource(sourceName, machineName);
}

次の例では、ローカルコンピュータ上の「MyLog」という名前のイベントログにあるすべてのエントリを削除しています。

VB.NET
コードを隠すコードを選択
'すべてのエントリを削除するイベントログ名
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
C#
コードを隠すコードを選択
//すべてのエントリを削除するイベントログ名
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();
}
  • 履歴:
  • 2011/7/9 LogNameFromSourceNameメソッドの2番目のパラメータを「""」から「"."」に変更。
  • 2014/1/6 サンプルを書き換える。UACに関する記述を追加など。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。