1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.log.writers.firebug">
<title>Écrire vers Firebug</title>
<para>
<classname>Zend_Log_Writer_Firebug</classname> envoie des données d'historisation vers
la <ulink url="http://www.getfirebug.com/">console Firebug</ulink>.
</para>
<para>
<inlinegraphic fileref="figures/zend.wildfire.firebug.console.png" format="PNG"
scale="100" width="310" />
</para>
<para>
Toutes les données sont envoyées via le composant
<classname>Zend_Wildfire_Channel_HttpHeaders</classname> qui utilise les en-têtes <acronym>HTTP</acronym> pour
s'assurer que le contenu de la page n'est pas perturbé. Déboguer les requêtes <acronym>AJAX</acronym> qui
requière du <acronym>JSON</acronym> "propre" ou un réponse <acronym>XML</acronym> est possible avec cette approche.
</para>
<para>Éléments requis :</para>
<itemizedlist>
<listitem>
<para>
Navigateur Firefox idéalement en version 3 mais la version 2 est aussi
supportée.
</para>
</listitem>
<listitem>
<para>
L'extension Firefox nommée Firebug qui peut être téléchargée à cette adresse
<ulink
url="https://addons.mozilla.org/en-US/firefox/addon/1843">https://addons.mozilla.org/en-US/firefox/addon/1843</ulink>.
</para>
</listitem>
<listitem>
<para>
L'extension Firefox nommée FirePHP ui peut être téléchargée à cette adresse
<ulink
url="https://addons.mozilla.org/en-US/firefox/addon/6149">https://addons.mozilla.org/en-US/firefox/addon/6149</ulink>.
</para>
</listitem>
</itemizedlist>
<example id="zend.log.writers.firebug.example.with_front_controller">
<title>Journaliser avec Zend_Controller_Front</title>
<programlisting language="php"><![CDATA[
// Placez ceci dans votre fichier d'amorçage
// avant de distribuer votre contrôleur frontal
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
// Utiliser ceci dans vos fichiers de modèles, vues et contrôleurs
$logger->log('Ceci est un message de log !', Zend_Log::INFO);
]]></programlisting>
</example>
<example id="zend.log.writers.firebug.example.without_front_controller">
<title>Journaliser sans Zend_Controller_Front</title>
<programlisting language="php"><![CDATA[
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log($writer);
$request = new Zend_Controller_Request_Http();
$response = new Zend_Controller_Response_Http();
$channel = Zend_Wildfire_Channel_HttpHeaders::getInstance();
$channel->setRequest($request);
$channel->setResponse($response);
// Démarrer l'output buffering
ob_start();
// Maintenant vous pouvez appeler le logguer
$logger->log('Ceci est un message de log !', Zend_Log::INFO);
// Envoi des données d'historisation vers le navigateur
$channel->flush();
$response->sendHeaders();
]]></programlisting>
</example>
<sect3 id="zend.log.writers.firebug.priority-styles">
<title>Paramétrer les styles pour les priorités</title>
<para>
Les priorités incorporées et celles définies par l'utilisateur peuvent être
stylisées avec la méthode <methodname>setPriorityStyle()</methodname>.
</para>
<programlisting language="php"><![CDATA[
$logger->addPriority('FOO', 8);
$writer->setPriorityStyle(8, 'TRACE');
$logger->foo('Foo Message');
]]></programlisting>
<para>
Le style par défaut pour les priorités définies par l'utilisateur peut être
paramétrer avec la méthode <methodname>setDefaultPriorityStyle()</methodname>.
</para>
<programlisting language="php"><![CDATA[
$writer->setDefaultPriorityStyle('TRACE');
]]></programlisting>
<para>
Les styles supportés sont les suivants : <table
id="zend.log.writers.firebug.priority-styles.table">
<title>Styles d'historisation de Firebug</title>
<tgroup cols="2">
<thead>
<row>
<entry>Style</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><constant>LOG</constant></entry>
<entry>Affiche un message d'historisation basique</entry>
</row>
<row>
<entry><constant>INFO</constant></entry>
<entry>Affiche un message d'historisation de type
information</entry>
</row>
<row>
<entry><constant>WARN</constant></entry>
<entry>Affiche un message d'historisation de type
avertissement</entry>
</row>
<row>
<entry><constant>ERROR</constant></entry>
<entry>Affiche un message d'historisation de type erreur (celui-ci
incrémente le compteur d'erreur de Firebug)</entry>
</row>
<row>
<entry><constant>TRACE</constant></entry>
<entry>Affiche un message d'historisation avec une trace
extensible</entry>
</row>
<row>
<entry><constant>EXCEPTION</constant></entry>
<entry>Affiche un message d'historisation de type erreur avec une
trace extensible</entry>
</row>
<row>
<entry><constant>TABLE</constant></entry>
<entry>Affiche un message d'historisation avec une table
extensible</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect3>
<sect3 id="zend.log.writers.firebug.preparing-data">
<title>Préparer les données pour l'historisation</title>
<para>
Toute variable <acronym>PHP</acronym> peut être journalisée avec les priorités incorporées, un
formatage spécial est requis si vous utilisez des styles d'historisation un peu plus
spécialisé.
</para>
<para>
Les styles <constant>LOG</constant>, <constant>INFO</constant>, <constant>WARN</constant>,
<constant>ERROR</constant> et <constant>TRACE</constant> ne requièrent pas de formatage spécial.
</para>
</sect3>
<sect3 id="zend.log.writers.firebug.preparing-data.exception">
<title>Historisation des exceptions</title>
<para>
Pour journaliser une <classname>Zend_Exception</classname>, fournissez simplement
l'objet exception au logguer. Il n'y a pas d'importance sur la priorité ou le style que
vous avez fourni puisque l'exception est automatiquement reconnue.
</para>
<programlisting language="php"><![CDATA[
$exception = new Zend_Exception('Test d\'exception');
$logger->err($exception);
]]></programlisting>
</sect3>
<sect3 id="zend.log.writers.firebug.preparing-data.table">
<title>Historisation sous forme de tableau</title>
<para>
Vous pouvez aussi journaliser des données en les formatant comme un tableau. Les
colonnes sont automatiquement reconnues et la première ligne de données devient
automatiquement la ligne d'en-têtes.
</para>
<programlisting language="php"><![CDATA[
$writer->setPriorityStyle(8, 'TABLE');
$logger->addPriority('TABLE', 8);
$table = array('Ligne de résumé pour la table',
array(
array('Colonne 1', 'Colonne 2'),
array('Ligne 1 c 1',' Ligne 1 c 2'),
array('Ligne 2 c 1',' Ligne 2 c 2')
)
);
$logger->table($table);
]]></programlisting>
</sect3>
</sect2>
|