| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.log.formatters">
- <title>Formateurs (mise en forme)</title>
- <para>
- Un formateur est un objet qui est responsable de prendre un tableau <code>event</code>
- décrivant un événement de log et produisant une ligne de log formatée sous la forme d'un une
- chaîne.
- </para>
- <para>
- Quelques rédacteurs ("Writers") ne fonctionnent pas en terme de ligne et ne peuvent
- pas utiliser un formateur. Un exemple est le rédacteur de base de données, qui insère les
- items d'événement directement en colonnes de base de données. Pour les rédacteurs qui ne
- peuvent pas supporter un formateur, une exception est levée si vous essayez d'affecter un
- formateur.
- </para>
- <sect2 id="zend.log.formatters.simple">
- <title>Formatage simple</title>
- <para>
- <classname>Zend_Log_Formatter_Simple</classname> est le formateur par défaut. Il
- est configuré automatiquement quand vous n'indiquez aucun formateur. La configuration
- par défaut est équivalente à ce qui suit : <programlisting language="php"><![CDATA[
- $format = '%timestamp% %priorityName% (%priority%): %message%' . PHP_EOL;
- $formatter = new Zend_Log_Formatter_Simple($format);
- ]]></programlisting></para>
- <para>
- Un formateur est affecté à un objet individuel de rédacteur en utilisant la
- méthode <methodname>setFormatter()</methodname> du rédacteur : <programlisting language="php"><![CDATA[
- $redacteur = new Zend_Log_Writer_Stream('php://output');
- $formateur = new Zend_Log_Formatter_Simple('Bonjour %message%' . PHP_EOL);
- $redacteur->setFormatter($formateur);
- $logger = new Zend_Log();
- $logger->addWriter($redacteur);
- $logger->info('Monde');
- // affiche "Bonjour Monde"
- ]]></programlisting></para>
- <para>
- Le constructeur de <classname>Zend_Log_Formatter_Simple</classname> accepte un
- paramètre unique : la chaîne de formatage. Cette chaîne contient des clés entourées par
- le signe pourcentage (par exemple %message%). La chaîne de formatage peut contenir
- n'importe quelle clé du tableau de données d'événement. Vous pouvez récupérer les clés
- par défaut en utilisant la constante DEFAULT_FORMAT de
- <classname>Zend_Log_Formatter_Simple</classname>.
- </para>
- </sect2>
- <sect2 id="zend.log.formatters.xml">
- <title>Formater vers le XML</title>
- <para>
- <classname>Zend_Log_Formatter_Xml</classname> formate des données de log dans des
- chaînes de type XML. Par défaut, il note automatiquement tout le tableau de données
- d'événements : <programlisting language="php"><![CDATA[
- $redacteur = new Zend_Log_Writer_Stream('php://output');
- $formateur = new Zend_Log_Formatter_Xml();
- $redacteur->setFormatter($formateur);
- $logger = new Zend_Log();
- $logger->addWriter($redacteur);
- $logger->info("Message d'information");
- ]]></programlisting></para>
- <para>
- Le code ci-dessus affiche le XML suivant (des espaces supplémentaires sont ajoutés
- pour la clarté) : <programlisting language="xml"><![CDATA[
- <logEntry>
- <timestamp>2007-04-06T07:24:37-07:00</timestamp>
- <message>Message d'information</message>
- <priority>6</priority>
- <priorityName>INFO</priorityName>
- </logEntry>
- ]]></programlisting></para>
- <para>
- Il est possible d'adapter l'élément racine comme indiquent faire correspondre les
- éléments XML au tableau de données d'évènements. Le constructeur de
- <classname>Zend_Log_Formatter_Xml</classname> accepte une chaîne avec le nom de
- l'élément racine comme premier paramètre et un tableau associatif avec les éléments de
- correspondance comme deuxième paramètre : <programlisting language="php"><![CDATA[
- $redacteur = new Zend_Log_Writer_Stream('php://output');
- $formateur = new Zend_Log_Formatter_Xml('log',
- array('msg' => 'message',
- 'niveau' => 'priorityName'));
- $redacteur->setFormatter($formateur);
- $logger = new Zend_Log();
- $logger->addWriter($redacteur);
- $logger->info("Message d'information");
- ]]></programlisting> Le code ci-dessus change l'élément racine par défaut de
- <code>logEntry</code> en <code>log</code>. Il fait correspondre également les éléments
- <code>msg</code> au <code>message</code> de l'item de donnée d'événement. Ceci a comme
- conséquence l'affichage suivant : <programlisting language="xml"><![CDATA[
- <log>
- <msg>Message d'information</msg>
- <niveau>INFO</niveau>
- </log>
- ]]></programlisting></para>
- </sect2>
- </sect1>
|