|
|
@@ -0,0 +1,124 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 19555 -->
|
|
|
+<!-- 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 API 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 API.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ein relativ nützlichen Feature der Monitor API 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 Null 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 API in der eigenen PHP
|
|
|
+ Anwendung nicht erkannt wurde, als Null Logger.
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
+</sect2>
|