Zend_Log-Writers-Firebug.xml 7.9 KB

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