Zend_Log-Writers-Firebug.xml 7.8 KB

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