| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.log.writers.zendmonitor">
- <title>Auf den Zend Server Montior schreiben</title>
- <para>
- <classname>Zend_Log_Writer_ZendMonitor</classname> erlaubt es Events über Zend Server's
- Monitor <acronym>API</acronym> zu loggen. Das erlaubt es die Log Nachrichten für die
- Umgebung einer komplette Anwendung an einem einzelnen Ort zu sammeln. Intern verwendet es
- einfach die <methodname>monitor_custom_event()</methodname> Funktion der Zend Monitor
- <acronym>API</acronym>.
- </para>
- <para>
- Ein relativ nützlichen Feature der Monitor <acronym>API</acronym> ist das Sie es erlaubt
- beliebige eigene Informationen zusammen mit der Log Nachricht zu spezifizieren. Wenn man zum
- Beispiel eine Exception loggen will, kann man nicht nur die Exception Nachricht loggen,
- sondern auch das komplette Exception Objekt an die Funktion übergeben, und das Objekt dann
- im Zend Server Event Monitor inspizieren.
- </para>
- <note>
- <title>Zend Monitor muss installiert und aktiviert sein</title>
- <para>
- Um diesen Log Writer zu verwenden muss Zend Monitor sowohl installiert als auch
- aktiviert sein. Trotzdem ist er so designt dass, wenn Zend Monitor nicht gefunden wurde,
- er einfach als <constant>NULL</constant> Logger agiert.
- </para>
- </note>
- <para>
- Die Instanzierung des <classname>ZendMonitor</classname> Log Writers ist trivial:
- </para>
- <programlisting language="php"><![CDATA[
- $writer = new Zend_Log_Writer_ZendMonitor();
- $log = new Zend_Log($writer);
- ]]></programlisting>
- <para>
- Dann können Nachrichten einfach wie gewohnt geloggt werden:
- </para>
- <programlisting language="php"><![CDATA[
- $log->info('Das ist eine Nachricht');
- ]]></programlisting>
- <para>
- Wenn man zusätzliche Informationen spezifizieren will, die mit dem Event geloggt werden
- sollen, können diese Informationen in einem zweiten Parameter übergeben werden:
- </para>
- <programlisting language="php"><![CDATA[
- $log->info('Exception gefunden', $e);
- ]]></programlisting>
- <para>
- Der zweite Parameter kann ein Skalar, Objekt oder ein Array sein; wenn man mehrere Teile an
- Informationen übergeben will, ist der beste Weg diese als assoziatives Array zu übergeben.
- </para>
- <programlisting language="php"><![CDATA[
- $log->info('Exception gefunden', array(
- 'request' => $request,
- 'exception' => $e,
- ));
- ]]></programlisting>
- <para>
- Im Zend Server wird das Event als "eigenes Event" (custom) geloggt. Vom "Monitor" Tab muss
- das "Events" Sub-Element ausgewählt werden und dann der Filter aus "Custom" um eigene Events
- zu sehen.
- </para>
- <para>
- <inlinegraphic fileref="figures/zend.log.writers.zendmonitor-events.png" format="PNG" />
- </para>
- <para>
- Events im Dashboard von Zend Server's Monitor
- </para>
- <para>
- In diesem Screenshot sind die ersten zwei angeführten Events eigene Events die über den
- <classname>ZendMonitor</classname> Log Writer geloggt wurden. Man kann anschließend auf ein
- Event klicken um alle Ihr zugehörigen Informationen zu sehen.
- </para>
- <para>
- <inlinegraphic fileref="figures/zend.log.writers.zendmonitor-event.png" format="PNG" />
- </para>
- <para>
- Event Detail in Zend Server's Monitor
- </para>
- <para>
- Wenn auf das Sub-Tab "Custom" geklickt wird, werden alle extra Informationen angezeigt die
- durch die Übergabe des zweiten Arguments an die Logging Methode geloggt wurden. Diese
- Informationen werden als <varname>info</varname> Unterschlüssel geloggt; man kann sehen das
- in diesem Beispiel das Request Objekt geloggt wurde.
- </para>
- <note>
- <title>Integration mit Zend_Application</title>
- <para>
- Standardmäßig fügen die Kommandos <command>zf.sh</command> und <command>zf.bat</command>
- die Konfguration für die <link
- linkend="zend.application.available-resources.log"><classname>Zend_Application</classname>
- Log Ressource</link> hinzu, welcher die Konfiguration für den
- <classname>ZendMonitor</classname> Log Writer enthält. Zusätzlich verwendet der
- <classname>ErrorController</classname> den konfigurierten Logger um Exceptions der
- Anwendung zu loggen -- und bietet deshalb standardmäßig die Integration für Events im
- Zend Monitor.
- </para>
- <para>
- Wie vorher erwähnt fungiert der Logger, wenn die Monitor <acronym>API</acronym> in der
- eigenen <acronym>PHP</acronym> Anwendung nicht erkannt wurde, als
- <constant>NULL</constant> Logger.
- </para>
- </note>
- </sect2>
|