アプリケーションログにエントリを書き込むには、EventLogクラスの静的なWriteEntryメソッドを使用します。このとき、指定したソースが存在していない場合は、EventLog.CreateEventSourceメソッドで作成しておきます。
エントリを書き込むには、最低、以下の2点をあらかじめ決めておきます。
- ログの名前
- ソース
ログの名前は、「アプリケーション」「システム」などがある。通常は「アプリケーション」イベント・ログを指定します。「アプリケーション」を指定するには、「Application」と記述します。これら標準のもの以外に、独自のイベント・ログを作成することもできます。
ソースは、エントリがどこから登録されたものかを示すもので、通常はアプリケーション名となります。
次のコードは、「MyLog」というソースでアプリケーションログに書き込みをしています。
namespace EventLogDemo { class Program { static void Main(string[] args) { //ソース string sourceName = "MyLog"; //ソースが存在していない時は、作成する if (!System.Diagnostics.EventLog.SourceExists(sourceName)) { //ローカル コンピューター上に登録するときに使用するソース名 //ログの名前。 指定できる値は、"Application"、"System"、 // またはカスタム イベント ログ。 System.Diagnostics.EventLog.CreateEventSource(sourceName, "Application"); } //テスト用にイベントログエントリに付加するデータを作る byte[] myData = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //イベントログにエントリを書き込む //ここではエントリの種類をエラー、イベントIDを1、 // 分類を1000とする System.Diagnostics.EventLog.WriteEntry( sourceName, "イベントログのデモソフト1", System.Diagnostics.EventLogEntryType.Error, 1, 1000, myData); } } }
EventLogEntryType列挙体のメンバを次に示します。
メンバ | 説明 |
---|---|
Information | 報。成功した操作を示します。 |
Warning | 警告。今後問題の原因となり得る問題を示します。 |
Error | エラー。ユーザーに知らせる必要がある重大な問題を示します。 |
SuccessAudit | 成功した監査。監査アクセスに成功したこと(例えば、ログオンに成功したなど)を示します。/td> |
FailureAudit | 監査エラー。監査アクセスに失敗したこと(ファイルを開けなかったなど)を示します。 |
「イベントビューア」で書き込まれたエントリは、コントロール パネルのシステムとセキュリティのイベントログの表示を選択すると、イベントビューアが表示されるので、左側メニューの「アプリケーションとサービスログ」の「MyLog」に追加されます(Windows7)。エントリに追加された内容は、次のように表示されます。
テスト用にイベントログエントリに付加するデータも次のように詳細タブに表示されます。