| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.log.writers.zendmonitor">
- <title>Ecrire vers le moniteur Zend Server</title>
- <para>
- <classname>Zend_Log_Writer_ZendMonitor</classname> vous permet de journaliser des évènements
- via l'API de Zend Server. Vous pouvez alors aggréger des messages de journal pour l'application
- et tout son environnement, ceci vers un seul endroit. En interne, cet objet utilise simplement la
- fonction <methodname>monitor_custom_event()</methodname> issue de Zend Monitor.
- </para>
- <para>
- Une caractéristique particulière de l'API Monitor est que vous pouvez spécifier n'importe quelle
- information dans le journal. Par exemple, journaliser une exception est possible en journalisant
- tout l'objet Exception d'un coup et pas juste son message. L'objet sera alors visible et analysable
- via le moniteur d'évènement de Zend Server.
- </para>
- <note>
- <title>Zend Monitor doit être installé et activé</title>
- <para>
- Pour utiliser cet objet d'écriture, Zend Monitor doit petre installé et activé.
- Si ce n'est pas le cas, alors l'objet d'écriture agira de manière transparente et ne fera
- rien du tout.
- </para>
- </note>
- <para>
- Instancier l'objet d'écriture <classname>ZendMonitor</classname> est très simple:
- </para>
- <programlisting language="php"><![CDATA[
- $writer = new Zend_Log_Writer_ZendMonitor();
- $log = new Zend_Log($writer);
- ]]></programlisting>
- <para>
- Ensuite, journalisez vos évènements comme d'habitude:
- </para>
- <programlisting language="php"><![CDATA[
- $log->info('Voici un message');
- ]]></programlisting>
- <para>
- Vous pouvez ajouter des informations à journaliser, passez les comme second paramètre:
- </para>
- <programlisting language="php"><![CDATA[
- $log->info('Exception rencontrée', $e);
- ]]></programlisting>
- <para>
- Ce deuxième paramètre peut être de type scalaire, objet, ou tableau; si vous souhaitez
- passer plusieurs informations d'un seul coup, utilisez un tableau.
- </para>
- <programlisting language="php"><![CDATA[
- $log->info('Exception rencontrée', array(
- 'request' => $request,
- 'exception' => $e,
- ));
- ]]></programlisting>
- <para>
- Au sein de Zend Server, votre évènement est enregistré comme un "évènement personnalisé" (custom event).
- Depuis l'onglet "Monitor", sélectionnez le sous menu "Evènements"(Events), et utilisez ensuite le filtre
- "Personnalisé"(Custom).
- </para>
- <para>
- <inlinegraphic fileref="figures/zend.log.writers.zendmonitor-events.png" format="PNG" />
- </para>
- <para>
- Evènements dans le récapitulatif Zend Server Monitor
- </para>
- <para>
- Sur cette image, les deux premiers évènements listés sont des évènements personnalisés enregistré via
- l'objet d'écriture <classname>ZendMonitor</classname>. Cliquez alors sur un évènement pour voir toutes ses
- informations.
- </para>
- <para>
- <inlinegraphic fileref="figures/zend.log.writers.zendmonitor-event.png" format="PNG" />
- </para>
- <para>
- Détails de l'évènement dans Zend Server Monitor
- </para>
- <para>
- Cliquer sur le sous menu "Personnalisé"(Custom) montre les détails, c'est à dire ce que vous avez passé
- comme deuxième argument à la méthode de journalisation. Cet information est enregistrée sous la clé
- <varname>info</varname>; et vous pouvez voir que l'objet de requête a été enregistré dans cet exemple.
- </para>
- <note>
- <title>Intégration avec Zend_Application</title>
- <para>
- Par défaut, les commandes <command>zf.sh</command> et <command>zf.bat</command> ajoute une
- configuration pour la ressource 'log' de<link
- linkend="zend.application.available-resources.log"><classname>Zend_Application</classname>
- </link>, elle inclut la configuration pour l'objet d'écriture du journal
- <classname>ZendMonitor</classname>. Aussi, le
- <classname>ErrorController</classname> utilise ce journal pour journaliser les exceptions de
- l'application.
- </para>
- <para>
- Comme dit précedemment, si l'API de Zend Monitor API n'est pas détectée sur votre installation de PHP,
- alors le journal ne fera rien du tout.
- </para>
- </note>
- </sect2>
|