イベントログにメッセージを出力する
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の通知領域にメッセージを表示する