Zend_Log-Writers-ZendMonitor.xml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect2 id="zend.log.writers.zendmonitor">
  5. <title>Zend Server モニターへの書き込み</title>
  6. <para>
  7. <classname>Zend_Log_Writer_ZendMonitor</classname> では、Zend Server のモニター
  8. <acronym>API</acronym> を介してイベントを記録できます。
  9. これにより、アプリケーション環境全体のログ・メッセージを一箇所に集約できます。
  10. 内部的には、それは単に Zend モニター <acronym>API</acronym> 由来の
  11. <methodname>monitor_custom_event()</methodname> 関数を使用します。
  12. </para>
  13. <para>
  14. モニター <acronym>API</acronym> で特に役立つ機能は、
  15. ログ・メッセージと一緒に任意のカスタム情報を指定できることです。
  16. たとえば、例外を記録したい場合、まさにその例外メッセージを記録できません。
  17. しかし、関数に例外オブジェクトを全て渡せます。
  18. そして、Zend Server イベント・モニターの内部でオブジェクトを調査できます。
  19. </para>
  20. <note>
  21. <title>Zend モニターがインストールされ、使用可能にされなければいけません</title>
  22. <para>
  23. このログ・ライタを使用するには、Zend モニターがインストールされ、使用可能にされなければなりません。
  24. しかしながら、Zend モニターが検出されない場合、<constant>NULL</constant>
  25. ロガーとして単純に動作するように設計されています。
  26. </para>
  27. </note>
  28. <para>
  29. <classname>ZendMonitor</classname>ログ・ライタのインスタンス生成は特記するまでもありません。
  30. </para>
  31. <programlisting language="php"><![CDATA[
  32. $writer = new Zend_Log_Writer_ZendMonitor();
  33. $log = new Zend_Log($writer);
  34. ]]></programlisting>
  35. <para>
  36. それから、通常通り単純にメッセージを記録します。
  37. </para>
  38. <programlisting language="php"><![CDATA[
  39. $log->info('This is a message');
  40. ]]></programlisting>
  41. <para>
  42. イベントと共に記録する追加の情報を指定したい場合は、
  43. 2番目の引数でその情報を渡します。
  44. </para>
  45. <programlisting language="php"><![CDATA[
  46. $log->info('Exception occurred', $e);
  47. ]]></programlisting>
  48. <para>
  49. 2番目の引数は、スカラー、オブジェクトまたは配列です。
  50. 情報の複数の部分を渡す必要があるならば、そうする最高の方法は連想配列を渡すことです。
  51. </para>
  52. <programlisting language="php"><![CDATA[
  53. $log->info('Exception occurred', array(
  54. 'request' => $request,
  55. 'exception' => $e,
  56. ));
  57. ]]></programlisting>
  58. <para>
  59. Zend Server 内では、イベントは「カスタム・イベント」として記録されます。
  60. 「モニター」タブから「イベント」項目を選び、カスタム・イベントを見るために、「カスタム」上で絞り込みます。
  61. </para>
  62. <para>
  63. <inlinegraphic fileref="figures/zend.log.writers.zendmonitor-events.png" format="PNG" />
  64. </para>
  65. <para>
  66. Zend Server のモニター・ダッシュボードのイベント
  67. </para>
  68. <para>
  69. このスクリーン・ショットで、一覧表示される最初の2つのイベントは、
  70. <classname>ZendMonitor</classname>ログ・ライタを通して記録されるカスタム・イベントです。
  71. 関連した情報を全て見るには、イベントをクリックします。
  72. </para>
  73. <para>
  74. <inlinegraphic fileref="figures/zend.log.writers.zendmonitor-event.png" format="PNG" />
  75. </para>
  76. <para>
  77. Zend Server のモニターのイベント詳細
  78. </para>
  79. <para>
  80. 「カスタム」タブをクリックすると、ログ収集メソッドに2番目の引数を渡して記録した
  81. 追加の情報を全て詳しく表示します。
  82. この情報は、<varname>info</varname> キーとして記録されます。
  83. この例では、リクエスト・オブジェクトが記録されることを確認できます。
  84. </para>
  85. <note>
  86. <title>Zend_Application との統合</title>
  87. <para>
  88. <command>zf.sh</command> と <command>zf.bat</command> コマンドは、デフォルトで
  89. <link linkend="zend.application.available-resources.log"><classname>Zend_Application</classname>
  90. ログ・リソース</link>用の構成を追加します。
  91. そして、それは <classname>ZendMonitor</classname> ログ・ライタ用の構成を含みます。
  92. さらに、<classname>ErrorController</classname> は、アプリケーション例外を記録するために
  93. 構成されたロガーを使います。それは、デフォルトでZend モニター・イベント統合とともに提供します。
  94. </para>
  95. <para>
  96. 前述のように、モニター <acronym>API</acronym> が <acronym>PHP</acronym> インストールで検出されない場合、
  97. ロガーは単純に <constant>NULL</constant> ロガーとして動作します。
  98. </para>
  99. </note>
  100. </sect2>