Zend_Log-Writers-Firebug.xml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect2 id="zend.log.writers.firebug">
  5. <title>Firebug への書き込み</title>
  6. <para>
  7. <classname>Zend_Log_Writer_Firebug</classname> は、ログデータを
  8. <ulink url="http://www.getfirebug.com/">Firebug</ulink>
  9. <ulink url="http://getfirebug.com/logging.html">コンソール</ulink>
  10. に送信します。
  11. </para>
  12. <para>
  13. <inlinegraphic fileref="figures/zend.wildfire.firebug.console.png" format="PNG" scale="100" width="310" />
  14. </para>
  15. <para>
  16. すべてのデータの送信には <classname>Zend_Wildfire_Channel_HttpHeaders</classname>
  17. コンポーネントを使用します。これは <acronym>HTTP</acronym> ヘッダを使用するので、
  18. ページのコンテンツには何も影響を及ぼしません。
  19. この方式なら、<acronym>AJAX</acronym> リクエストのようにクリーンな <acronym>JSON</acronym>
  20. および <acronym>XML</acronym> レスポンスを要求するリクエストのデバッグも行えます。
  21. </para>
  22. <para>
  23. 要件:
  24. </para>
  25. <itemizedlist>
  26. <listitem>
  27. <para>
  28. Firefox ブラウザ。バージョン 3 が最適ですがバージョン 2 にも対応しています。
  29. </para>
  30. </listitem>
  31. <listitem>
  32. <para>
  33. Firebug 拡張。
  34. <ulink url="https://addons.mozilla.org/ja/firefox/addon/1843">https://addons.mozilla.org/ja/firefox/addon/1843</ulink>
  35. からダウンロードできます。
  36. </para>
  37. </listitem>
  38. <listitem>
  39. <para>
  40. FirePHP 拡張。
  41. <ulink url="https://addons.mozilla.org/ja/firefox/addon/6149">https://addons.mozilla.org/ja/firefox/addon/6149</ulink>
  42. からダウンロードできます。
  43. </para>
  44. </listitem>
  45. </itemizedlist>
  46. <example id="zend.log.writers.firebug.example.with_front_controller">
  47. <title>Zend_Controller_Front を使ったログ記録</title>
  48. <programlisting language="php"><![CDATA[
  49. // 起動ファイルで、フロントコントローラのディスパッチの前に記述します
  50. $writer = new Zend_Log_Writer_Firebug();
  51. $logger = new Zend_Log($writer);
  52. // モデル、ビューおよびコントローラのファイル内でこれを使用します
  53. $logger->log('This is a log message!', Zend_Log::INFO);
  54. ]]></programlisting>
  55. </example>
  56. <example id="zend.log.writers.firebug.example.without_front_controller">
  57. <title>Zend_Controller_Front を使わないログ記録</title>
  58. <programlisting language="php"><![CDATA[
  59. $writer = new Zend_Log_Writer_Firebug();
  60. $logger = new Zend_Log($writer);
  61. $request = new Zend_Controller_Request_Http();
  62. $response = new Zend_Controller_Response_Http();
  63. $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance();
  64. $channel->setRequest($request);
  65. $channel->setResponse($response);
  66. // 出力バッファリングを開始します
  67. ob_start();
  68. // ロガーをコールします
  69. $logger->log('This is a log message!', Zend_Log::INFO);
  70. // ログデータをブラウザに送ります
  71. $channel->flush();
  72. $response->sendHeaders();
  73. ]]></programlisting>
  74. </example>
  75. <sect3 id="zend.log.writers.firebug.priority-styles">
  76. <title>優先度のスタイルの設定</title>
  77. <para>
  78. 組み込みの優先度やユーザ定義の優先度を使うには
  79. <methodname>setPriorityStyle()</methodname> メソッドを使用します。
  80. </para>
  81. <programlisting language="php"><![CDATA[
  82. $logger->addPriority('FOO', 8);
  83. $writer->setPriorityStyle(8, 'TRACE');
  84. $logger->foo('Foo Message');
  85. ]]></programlisting>
  86. <para>
  87. ユーザ定義の優先度用のデフォルトのスタイルを設定するには
  88. <methodname>setDefaultPriorityStyle()</methodname> メソッドを使用します。
  89. </para>
  90. <programlisting language="php"><![CDATA[
  91. $writer->setDefaultPriorityStyle('TRACE');
  92. ]]></programlisting>
  93. <para>
  94. サポートしているスタイルは次のとおりです。
  95. <table id="zend.log.writers.firebug.priority-styles.table">
  96. <title>Firebug Logging Styles</title>
  97. <tgroup cols="2">
  98. <thead>
  99. <row>
  100. <entry>スタイル</entry>
  101. <entry>説明</entry>
  102. </row>
  103. </thead>
  104. <tbody>
  105. <row>
  106. <entry><constant>LOG</constant></entry>
  107. <entry>通常のログメッセージを表示します</entry>
  108. </row>
  109. <row>
  110. <entry><constant>INFO</constant></entry>
  111. <entry>情報ログメッセージを表示します</entry>
  112. </row>
  113. <row>
  114. <entry><constant>WARN</constant></entry>
  115. <entry>警告ログメッセージを表示します</entry>
  116. </row>
  117. <row>
  118. <entry><constant>ERROR</constant></entry>
  119. <entry>エラーログメッセージを表示し、Firebug のエラーカウントをひとつ増やします</entry>
  120. </row>
  121. <row>
  122. <entry><constant>TRACE</constant></entry>
  123. <entry>拡張スタックトレースつきのログメッセージを表示します</entry>
  124. </row>
  125. <row>
  126. <entry><constant>EXCEPTION</constant></entry>
  127. <entry>拡張スタックトレースつきのエラーログメッセージを表示します</entry>
  128. </row>
  129. <row>
  130. <entry><constant>TABLE</constant></entry>
  131. <entry>拡張テーブルつきのログメッセージを表示します</entry>
  132. </row>
  133. </tbody>
  134. </tgroup>
  135. </table>
  136. </para>
  137. </sect3>
  138. <sect3 id="zend.log.writers.firebug.preparing-data">
  139. <title>ログ記録用のデータの準備</title>
  140. <para>
  141. 任意の <acronym>PHP</acronym> の変数を組み込みの優先度でログに記録できますが、
  142. 特殊なログ形式を使う場合は、何らかの書式変換が必要となります。
  143. </para>
  144. <para>
  145. <constant>LOG</constant>、<constant>INFO</constant>、<constant>WARN</constant>、<constant>ERROR</constant>
  146. そして <constant>TRACE</constant> については特別な書式変換は不要です。
  147. </para>
  148. </sect3>
  149. <sect3 id="zend.log.writers.firebug.preparing-data.exception">
  150. <title>例外のログ記録</title>
  151. <para>
  152. <classname>Zend_Exception</classname> のログを記録するには、
  153. 単にその例外オブジェクトをロガーに渡すだけです。
  154. 設定している優先度やスタイルにかかわらず、
  155. 例外は自動的に例外と判断されます。
  156. </para>
  157. <programlisting language="php"><![CDATA[
  158. $exception = new Zend_Exception('Test exception');
  159. $logger->err($exception);
  160. ]]></programlisting>
  161. </sect3>
  162. <sect3 id="zend.log.writers.firebug.preparing-data.table">
  163. <title>表形式のログ</title>
  164. <para>
  165. ログを表形式で記録できます。カラムは自動検出され、
  166. データの最初の行がヘッダと見なされます。
  167. </para>
  168. <programlisting language="php"><![CDATA[
  169. $writer->setPriorityStyle(8, 'TABLE');
  170. $logger->addPriority('TABLE', 8);
  171. $table = array('Summary line for the table',
  172. array(
  173. array('Column 1', 'Column 2'),
  174. array('Row 1 c 1',' Row 1 c 2'),
  175. array('Row 2 c 1',' Row 2 c 2')
  176. )
  177. );
  178. $logger->table($table);
  179. ]]></programlisting>
  180. </sect3>
  181. </sect2>