イベントログへメッセージ出力
CGIとか裏で動くプログラムは、画面やログファイルにエラーやワーニングの情報を出力できないケースがあったりします。
そんな時は、イベントログへ出力すればラクチンです。まぁ For Windowsですが・・・。
以下はそのサンプルです。
◆サンプルソース
use strict; OutEventlog('Test Perl', 'テストです!'); sub OutEventlog { my ($source_name, $log_data) = @_; system("eventcreate /T WARNING /ID 1 /L Application /SO \"$source_name\" /D \"$log_data\""); }
◆eventcreateコマンドヘルプ引用
EVENTCREATE [/S システム [/U ユーザー名 [/P [パスワード]]]] /ID イベントID
[/L ログ名] [/SO ソース名] /T 種類 /D 説明
説明:
このコマンド ライン ツールで管理者が指定のイベント ログに
カスタム イベントを作成します。
パラメータ一覧:
/S システム 接続先のリモート システムを指定します。
/U [ドメイン\]ユーザー コマンドが実行されるユーザー
コンテキストを指定します。
/P パスワード 指定のユーザー コンテキストの
パスワードを指定します。
/L ログ名 イベントを作成する先のイベント
ログを指定します。
/T 種類 作成するイベントの種類を指定します。
有効な種類: ERROR、WARNING、INFORMATION
/SO ソース イベントに使用するためのソースを指定しま
す。ソースにはどの文字列を指定しても有効
であり、イベントを作成するアプリケーショ
ンまたはコンポーネントを示すものです。
/ID ID イベントに対するイベント ID を指定しま
す。1 から 1000 の範囲のどの数字も有効
です。
/D 説明 新しく作成するイベントに対して設定する説
明文を指定します。
/? ヘルプまたは使用法を表示します。
例:
EVENTCREATE /T ERROR /ID 100
/L APPLICATION /D "アプリケーション ログにイベントを作成"
EVENTCREATE /T ERROR /ID 999 /L APPLICATION
/SO WinWord /D "アプリケーション ログの新しいソース Winword"
EVENTCREATE /S system /T ERROR /ID 100
/L APPLICATION /D "ユーザー資格情報のないリモート システム"
EVENTCREATE /S system /U user /P password /ID 100 /T ERROR
/L APPLICATION /D "ユーザー資格情報付きのリモート コンピュータ"
EVENTCREATE /S system /U domain\user /ID 100 /T WARNING
/SO MyBatchFile.cmd /D "メインテナンス スクリプト ユーザー ログオン失敗"