1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20792 -->
4 <sect2 id="zend.log.writers.firebug">
5 <title>Firebug への書き込み</title>
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>
13 <inlinegraphic fileref="figures/zend.wildfire.firebug.console.png" format="PNG" scale="100" width="310" />
16 すべてのデータの送信には <classname>Zend_Wildfire_Channel_HttpHeaders</classname>
17 コンポーネントを使用します。これは <acronym>HTTP</acronym> ヘッダを使用するので、
18 ページのコンテンツには何も影響を及ぼしません。
19 この方式なら、<acronym>AJAX</acronym> リクエストのようにクリーンな <acronym>JSON</acronym>
20 および <acronym>XML</acronym> レスポンスを要求するリクエストのデバッグも行えます。
28 Firefox ブラウザ。バージョン 3 が最適ですがバージョン 2 にも対応しています。
34 <ulink url="https://addons.mozilla.org/ja/firefox/addon/1843">https://addons.mozilla.org/ja/firefox/addon/1843</ulink>
41 <ulink url="https://addons.mozilla.org/ja/firefox/addon/6149">https://addons.mozilla.org/ja/firefox/addon/6149</ulink>
47 <example id="zend.log.writers.firebug.example.with_front_controller">
48 <title>Zend_Controller_Front を使ったログ記録</title>
50 <programlisting language="php"><![CDATA[
51 // 起動ファイルで、フロントコントローラのディスパッチの前に記述します
52 $writer = new Zend_Log_Writer_Firebug();
53 $logger = new Zend_Log($writer);
55 // モデル、ビューおよびコントローラのファイル内でこれを使用します
56 $logger->log('This is a log message!', Zend_Log::INFO);
60 <example id="zend.log.writers.firebug.example.without_front_controller">
61 <title>Zend_Controller_Front を使わないログ記録</title>
63 <programlisting language="php"><![CDATA[
64 $writer = new Zend_Log_Writer_Firebug();
65 $logger = new Zend_Log($writer);
67 $request = new Zend_Controller_Request_Http();
68 $response = new Zend_Controller_Response_Http();
69 $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance();
70 $channel->setRequest($request);
71 $channel->setResponse($response);
78 $logger->log('This is a log message!', Zend_Log::INFO);
82 $response->sendHeaders();
86 <sect3 id="zend.log.writers.firebug.priority-styles">
88 <title>優先度のスタイルの設定</title>
91 組み込みの優先度やユーザ定義の優先度を使うには
92 <methodname>setPriorityStyle()</methodname> メソッドを使用します。
94 <programlisting language="php"><![CDATA[
95 $logger->addPriority('FOO', 8);
96 $writer->setPriorityStyle(8, 'TRACE');
97 $logger->foo('Foo Message');
100 ユーザ定義の優先度用のデフォルトのスタイルを設定するには
101 <methodname>setDefaultPriorityStyle()</methodname> メソッドを使用します。
103 <programlisting language="php"><![CDATA[
104 $writer->setDefaultPriorityStyle('TRACE');
107 サポートしているスタイルは次のとおりです。
108 <table id="zend.log.writers.firebug.priority-styles.table">
109 <title>Firebug Logging Styles</title>
119 <entry><constant>LOG</constant></entry>
120 <entry>通常のログメッセージを表示します</entry>
123 <entry><constant>INFO</constant></entry>
124 <entry>情報ログメッセージを表示します</entry>
127 <entry><constant>WARN</constant></entry>
128 <entry>警告ログメッセージを表示します</entry>
131 <entry><constant>ERROR</constant></entry>
132 <entry>エラーログメッセージを表示し、Firebug のエラーカウントをひとつ増やします</entry>
135 <entry><constant>TRACE</constant></entry>
136 <entry>拡張スタックトレースつきのログメッセージを表示します</entry>
139 <entry><constant>EXCEPTION</constant></entry>
140 <entry>拡張スタックトレースつきのエラーログメッセージを表示します</entry>
143 <entry><constant>TABLE</constant></entry>
144 <entry>拡張テーブルつきのログメッセージを表示します</entry>
152 <sect3 id="zend.log.writers.firebug.preparing-data">
154 <title>ログ記録用のデータの準備</title>
157 任意の <acronym>PHP</acronym> の変数を組み込みの優先度でログに記録できますが、
158 特殊なログ形式を使う場合は、何らかの書式変換が必要となります。
161 <constant>LOG</constant>、<constant>INFO</constant>、<constant>WARN</constant>、<constant>ERROR</constant>
162 そして <constant>TRACE</constant> については特別な書式変換は不要です。
166 <sect3 id="zend.log.writers.firebug.preparing-data.exception">
168 <title>例外のログ記録</title>
171 <classname>Zend_Exception</classname> のログを記録するには、
172 単にその例外オブジェクトをロガーに渡すだけです。
173 設定している優先度やスタイルにかかわらず、
176 <programlisting language="php"><![CDATA[
177 $exception = new Zend_Exception('Test exception');
178 $logger->err($exception);
182 <sect3 id="zend.log.writers.firebug.preparing-data.table">
184 <title>表形式のログ</title>
187 ログを表形式で記録できます。カラムは自動検出され、
190 <programlisting language="php"><![CDATA[
191 $writer->setPriorityStyle(8, 'TABLE');
192 $logger->addPriority('TABLE', 8);
194 $table = array('Summary line for the table',
196 array('Column 1', 'Column 2'),
197 array('Row 1 c 1',' Row 1 c 2'),
198 array('Row 2 c 1',' Row 2 c 2')
201 $logger->table($table);