Zend_Log-Writers-ZendMonitor.xml 4.5 KB

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