Zend_Log-Writers-ZendMonitor.xml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect2 id="zend.log.writers.zendmonitor">
  4. <title>Ecrire vers le moniteur Zend Server</title>
  5. <para>
  6. <classname>Zend_Log_Writer_ZendMonitor</classname> vous permet de journaliser des évènements
  7. via l'API de Zend Server. Vous pouvez alors aggréger des messages de journal pour l'application
  8. et tout son environnement, ceci vers un seul endroit. En interne, cet objet utilise simplement la
  9. fonction <methodname>monitor_custom_event()</methodname> issue de Zend Monitor.
  10. </para>
  11. <para>
  12. Une caractéristique particulière de l'API Monitor est que vous pouvez spécifier n'importe quelle
  13. information dans le journal. Par exemple, journaliser une exception est possible en journalisant
  14. tout l'objet Exception d'un coup et pas juste son message. L'objet sera alors visible et analysable
  15. via le moniteur d'évènement de Zend Server.
  16. </para>
  17. <note>
  18. <title>Zend Monitor doit être installé et activé</title>
  19. <para>
  20. Pour utiliser cet objet d'écriture, Zend Monitor doit petre installé et activé.
  21. Si ce n'est pas le cas, alors l'objet d'écriture agira de manière transparente et ne fera
  22. rien du tout.
  23. </para>
  24. </note>
  25. <para>
  26. Instancier l'objet d'écriture <classname>ZendMonitor</classname> est très simple:
  27. </para>
  28. <programlisting language="php"><![CDATA[
  29. $writer = new Zend_Log_Writer_ZendMonitor();
  30. $log = new Zend_Log($writer);
  31. ]]></programlisting>
  32. <para>
  33. Ensuite, journalisez vos évènements comme d'habitude:
  34. </para>
  35. <programlisting language="php"><![CDATA[
  36. $log->info('Voici un message');
  37. ]]></programlisting>
  38. <para>
  39. Vous pouvez ajouter des informations à journaliser, passez les comme second paramètre:
  40. </para>
  41. <programlisting language="php"><![CDATA[
  42. $log->info('Exception rencontrée', $e);
  43. ]]></programlisting>
  44. <para>
  45. Ce deuxième paramètre peut être de type scalaire, objet, ou tableau; si vous souhaitez
  46. passer plusieurs informations d'un seul coup, utilisez un tableau.
  47. </para>
  48. <programlisting language="php"><![CDATA[
  49. $log->info('Exception rencontrée', array(
  50. 'request' => $request,
  51. 'exception' => $e,
  52. ));
  53. ]]></programlisting>
  54. <para>
  55. Au sein de Zend Server, votre évènement est enregistré comme un "évènement personnalisé" (custom event).
  56. Depuis l'onglet "Monitor", sélectionnez le sous menu "Evènements"(Events), et utilisez ensuite le filtre
  57. "Personnalisé"(Custom).
  58. </para>
  59. <para>
  60. <inlinegraphic fileref="figures/zend.log.writers.zendmonitor-events.png" format="PNG" />
  61. </para>
  62. <para>
  63. Evènements dans le récapitulatif Zend Server Monitor
  64. </para>
  65. <para>
  66. Sur cette image, les deux premiers évènements listés sont des évènements personnalisés enregistré via
  67. l'objet d'écriture <classname>ZendMonitor</classname>. Cliquez alors sur un évènement pour voir toutes ses
  68. informations.
  69. </para>
  70. <para>
  71. <inlinegraphic fileref="figures/zend.log.writers.zendmonitor-event.png" format="PNG" />
  72. </para>
  73. <para>
  74. Détails de l'évènement dans Zend Server Monitor
  75. </para>
  76. <para>
  77. Cliquer sur le sous menu "Personnalisé"(Custom) montre les détails, c'est à dire ce que vous avez passé
  78. comme deuxième argument à la méthode de journalisation. Cet information est enregistrée sous la clé
  79. <varname>info</varname>; et vous pouvez voir que l'objet de requête a été enregistré dans cet exemple.
  80. </para>
  81. <note>
  82. <title>Intégration avec Zend_Application</title>
  83. <para>
  84. Par défaut, les commandes <command>zf.sh</command> et <command>zf.bat</command> ajoute une
  85. configuration pour la ressource 'log' de<link
  86. linkend="zend.application.available-resources.log"><classname>Zend_Application</classname>
  87. </link>, elle inclut la configuration pour l'objet d'écriture du journal
  88. <classname>ZendMonitor</classname>. Aussi, le
  89. <classname>ErrorController</classname> utilise ce journal pour journaliser les exceptions de
  90. l'application.
  91. </para>
  92. <para>
  93. Comme dit précedemment, si l'API de Zend Monitor API n'est pas détectée sur votre installation de PHP,
  94. alors le journal ne fera rien du tout.
  95. </para>
  96. </note>
  97. </sect2>