イベントログにメッセージを出力する
Win32::EventLogモジュールを使います。
use strict;
use warnings;
use Win32::EventLog;
my $source = 'myApplication'; # ソース
my $elog = Win32::EventLog->new($source);
my $event = {
EventType => EVENTLOG_INFORMATION_TYPE, # 種類
EventID => 1, # イベントID
Strings => '説明', # 説明
Data => 'DATA', # データ
};
$elog->Report($event) or die "Reportに失敗しました。";
EventTypeには以下を設定します。| 設定値 | イベントログの値 |
|---|---|
| EVENTLOG_ERROR_TYPE | エラー |
| EVENTLOG_WARNING_TYPE | 警告 |
| EVENTLOG_INFORMATION_TYPE | 情報 |
| EVENTLOG_AUDIT_SUCCESS | 成功の監査 |
| EVENTLOG_AUDIT_FAILURE | 失敗の監査 |
イベント ID (xxxx) (ソース xxxx 内) に関する説明が見つかりませんでした。リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性があります。詳細については、ヘルプとサポートを参照してください。次の情報はイベントの一部です:イベントビューアがイベントログの説明欄を表示する際には、ソースに対応するメッセージDLLの中からイベントIDに対応する文字列を取得します。ソースに対応するメッセージDLLが見つからなかったり、イベントIDに対応する文字列を取得できない場合に上記のメッセージが表示されます。
上記メッセージを出さないようにするのであれば、DLLを作成してシステムに登録して下さい。
関連項目
・syslogにメッセージを出力する・Windowsの通知領域にメッセージを表示する
