Zend_Log-Writers-Firebug.xml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15215 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.log.writers.firebug">
  5. <title>An Firebox schreiben</title>
  6. <para>
  7. <classname>Zend_Log_Writer_Firebug</classname> sendet Logdaten an die
  8. <ulink url="http://www.getfirebug.com/">Firebug</ulink>
  9. <ulink url="http://getfirebug.com/logging.html">Console</ulink>.
  10. </para>
  11. <para>
  12. <inlinegraphic fileref="figures/zend.wildfire.firebug.console.png" format="PNG" scale="100" width="310" />
  13. </para>
  14. <para>
  15. Alle Daten werden über die <classname>Zend_Wildfire_Channel_HttpHeaders</classname> Komponente gesendet welche
  16. HTTP Header verwendet um sicherzustellen das der Seiteninhlat nicht verändert wird. Das Debuggen
  17. von AJAX Anfragen die klare JSON und XML Antworten benötigen ist mit diesem Vorgehen möglich.
  18. </para>
  19. <para>
  20. Notwendigkeiten:
  21. </para>
  22. <itemizedlist>
  23. <listitem>
  24. <para>
  25. Ein Firefox Browser idealerweise Version 3 aber auch Version 2 wird unterstützt.
  26. </para>
  27. </listitem>
  28. <listitem>
  29. <para>
  30. Die Firebug Firefox Erweiterung welche unter
  31. <ulink url="https://addons.mozilla.org/en-US/firefox/addon/1843">https://addons.mozilla.org/en-US/firefox/addon/1843</ulink>
  32. heruntergeladen werden kann.
  33. </para>
  34. </listitem>
  35. <listitem>
  36. <para>
  37. Die FirePHP Filefox Erweiterung welche unter
  38. <ulink url="https://addons.mozilla.org/en-US/firefox/addon/6149">https://addons.mozilla.org/en-US/firefox/addon/6149</ulink>
  39. heruntergeladen werden kann.
  40. </para>
  41. </listitem>
  42. </itemizedlist>
  43. <example id="zend.log.writers.firebug.example.with_front_controller">
  44. <title>Loggen mit Zend_Controller_Front</title>
  45. <programlisting role="php"><![CDATA[
  46. // In der Bootstrap Datei platzieren bevor der Frontcontroller ausgeführt wird
  47. $writer = new Zend_Log_Writer_Firebug();
  48. $logger = new Zend_Log($writer);
  49. // Verwende das in den Modell, View, und Controller Dateien
  50. $logger->log('Das ist eine Lognachricht!', Zend_Log::INFO);
  51. ]]></programlisting>
  52. </example>
  53. <example id="zend.log.writers.firebug.example.without_front_controller">
  54. <title>Loggen ohne Zend_Controller_Front</title>
  55. <programlisting role="php"><![CDATA[
  56. $writer = new Zend_Log_Writer_Firebug();
  57. $logger = new Zend_Log($writer);
  58. $request = new Zend_Controller_Request_Http();
  59. $response = new Zend_Controller_Response_Http();
  60. $channel = Zend_Wildfire_Channel_HttpHeaders::getInstance();
  61. $channel->setRequest($request);
  62. $channel->setResponse($response);
  63. // Ausgabe buffering starten
  64. ob_start();
  65. // Jetzt können Aufrufe an den Logger durchgeführt werden
  66. $logger->log('Das ist eine Lognachricht!', Zend_Log::INFO);
  67. // Logdaten an den Browser senden
  68. $channel->flush();
  69. $response->sendHeaders();
  70. ]]></programlisting>
  71. </example>
  72. <sect3 id="zend.log.writers.firebug.priority-styles">
  73. <title>Setzen von Stilen für Prioritäten</title>
  74. <para>
  75. Eingebaute und Benutzerdefinierte Prioritäten können mit der
  76. <code>setPriorityStyle()</code> Methode angepasst werden.
  77. </para>
  78. <programlisting role="php"><![CDATA[
  79. $logger->addPriority('FOO', 8);
  80. $writer->setPriorityStyle(8, 'TRACE');
  81. $logger->foo('Foo Nachricht');
  82. ]]></programlisting>
  83. <para>
  84. Der Standardstil für Benutzerdefinierte Prioritäten kann mit der
  85. <code>setDefaultPriorityStyle()</code> Methode gesetzt werden.
  86. </para>
  87. <programlisting role="php"><![CDATA[
  88. $writer->setDefaultPriorityStyle('TRACE');
  89. ]]></programlisting>
  90. <para>
  91. Die unterstützten Stile sind wie folgt:
  92. <table id="zend.log.writers.firebug.priority-styles.table">
  93. <title>Firebug Logging Stile</title>
  94. <tgroup cols="2">
  95. <thead>
  96. <row>
  97. <entry>Stil</entry>
  98. <entry>Beschreibung</entry>
  99. </row>
  100. </thead>
  101. <tbody>
  102. <row>
  103. <entry><code>LOG</code></entry>
  104. <entry>Zeigt eine reine Lognachricht an</entry>
  105. </row>
  106. <row>
  107. <entry><code>INFO</code></entry>
  108. <entry>Zeigt eine Info Lognachricht an</entry>
  109. </row>
  110. <row>
  111. <entry><code>WARN</code></entry>
  112. <entry>Zeigt eine Warnungs Lognachricht an</entry>
  113. </row>
  114. <row>
  115. <entry><code>ERROR</code></entry>
  116. <entry>Zeigt eine Fehler Lognachricht an die den Fehlerzählen von Firebug erhöht</entry>
  117. </row>
  118. <row>
  119. <entry><code>TRACE</code></entry>
  120. <entry>Zeigt eine Lognachricht mit einem erweiterbaren Stack Trace an</entry>
  121. </row>
  122. <row>
  123. <entry><code>EXCEPTION</code></entry>
  124. <entry>Zeigt eine lange Fehlernachicht mit erweiterbarem Stack Trace an</entry>
  125. </row>
  126. <row>
  127. <entry><code>TABLE</code></entry>
  128. <entry>Zeigt eine Lognachricht mit erweiterbarer Tabelle an</entry>
  129. </row>
  130. </tbody>
  131. </tgroup>
  132. </table>
  133. </para>
  134. </sect3>
  135. <sect3 id="zend.log.writers.firebug.preparing-data">
  136. <title>Daten für das Loggen vorbereiten</title>
  137. <para>
  138. Wärend jede PHP Variable mit den eingebauten Prioritäten geloggt werden kann, ist eine etwas spezielle
  139. Formatierung notwendig wenn einige der spezialisierteren Logstile verwendet werden.
  140. </para>
  141. <para>
  142. Die <code>LOG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code> und <code>TRACE</code>
  143. Stile benötigen keine spezielle Formatierung.
  144. </para>
  145. </sect3>
  146. <sect3 id="zend.log.writers.firebug.preparing-data.exception">
  147. <title>Loggen von Ausnahmen</title>
  148. <para>
  149. Um eine <classname>Zend_Exception</classname> zu loggen muß einfach das Exceptionobjekt an den Logger
  150. übergeben werden. Es ist egal welche Priorität oder welcher Stil gesetzt wurde, da die Ausnahme
  151. automatisch erkannt wird.
  152. </para>
  153. <programlisting role="php"><![CDATA[
  154. $exception = new Zend_Exception('Test Ausnahme');
  155. $logger->err($exception);
  156. ]]></programlisting>
  157. </sect3>
  158. <sect3 id="zend.log.writers.firebug.preparing-data.table">
  159. <title>Tabellen loggen</title>
  160. <para>
  161. Man kann auch Daten loggen und diese in einem Table Stil formatieren. Spalten werden automatisch
  162. erkannt und die erste Zeile der Daten wird automatisch der Header.
  163. </para>
  164. <programlisting role="php"><![CDATA[
  165. $writer->setPriorityStyle(8, 'TABLE');
  166. $logger->addPriority('TABLE', 8);
  167. $table = array('Summary line for the table',
  168. array(
  169. array('Spalte 1', 'Spalte 2'),
  170. array('Zeile 1 c 1','Zeile 1 c 2'),
  171. array('Zeile 2 c 1',' Zeile 2 c 2')
  172. )
  173. );
  174. $logger->table($table);
  175. ]]></programlisting>
  176. </sect3>
  177. </sect2>