Zend Server モニターへの書き込み
Zend_Log_Writer_ZendMonitor では、Zend Server のモニター
API を介してイベントを記録できます。
これにより、アプリケーション環境全体のログ・メッセージを一箇所に集約できます。
内部的には、それは単に Zend モニター API 由来の
monitor_custom_event() 関数を使用します。
モニター API で特に役立つ機能は、
ログ・メッセージと一緒に任意のカスタム情報を指定できることです。
たとえば、例外を記録したい場合、まさにその例外メッセージを記録できません。
しかし、関数に例外オブジェクトを全て渡せます。
そして、Zend Server イベント・モニターの内部でオブジェクトを調査できます。
Zend モニターがインストールされ、使用可能にされなければいけません
このログ・ライタを使用するには、Zend モニターがインストールされ、使用可能にされなければなりません。
しかしながら、Zend モニターが検出されない場合、NULL
ロガーとして単純に動作するように設計されています。
ZendMonitorログ・ライタのインスタンス生成は特記するまでもありません。
それから、通常通り単純にメッセージを記録します。
info('This is a message');
]]>
イベントと共に記録する追加の情報を指定したい場合は、
2番目の引数でその情報を渡します。
info('Exception occurred', $e);
]]>
2番目の引数は、スカラー、オブジェクトまたは配列です。
情報の複数の部分を渡す必要があるならば、そうする最高の方法は連想配列を渡すことです。
info('Exception occurred', array(
'request' => $request,
'exception' => $e,
));
]]>
Zend Server 内では、イベントは「カスタム・イベント」として記録されます。
「モニター」タブから「イベント」項目を選び、カスタム・イベントを見るために、「カスタム」上で絞り込みます。
Zend Server のモニター・ダッシュボードのイベント
このスクリーン・ショットで、一覧表示される最初の2つのイベントは、
ZendMonitorログ・ライタを通して記録されるカスタム・イベントです。
関連した情報を全て見るには、イベントをクリックします。
Zend Server のモニターのイベント詳細
「カスタム」タブをクリックすると、ログ収集メソッドに2番目の引数を渡して記録した
追加の情報を全て詳しく表示します。
この情報は、info キーとして記録されます。
この例では、リクエスト・オブジェクトが記録されることを確認できます。
Zend_Application との統合
zf.sh と zf.bat コマンドは、デフォルトで
Zend_Application
ログ・リソース用の構成を追加します。
そして、それは ZendMonitor ログ・ライタ用の構成を含みます。
さらに、ErrorController は、アプリケーション例外を記録するために
構成されたロガーを使います。それは、デフォルトでZend モニター・イベント統合とともに提供します。
前述のように、モニター API が PHP インストールで検出されない場合、
ロガーは単純に NULL ロガーとして動作します。