Auf den Zend Server Montior schreibenZend_Log_Writer_ZendMonitor 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 monitor_custom_event() Funktion der Zend Monitor
API.
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.
Zend Monitor muss installiert und aktiviert sein
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.
Die Instanzierung des ZendMonitor Log Writers ist trivial:
Dann können Nachrichten einfach wie gewohnt geloggt werden:
info('Das ist eine Nachricht');
]]>
Wenn man zusätzliche Informationen spezifizieren will, die mit dem Event geloggt werden
sollen, können diese Informationen in einem zweiten Parameter übergeben werden:
info('Exception gefunden', $e);
]]>
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.
info('Exception gefunden', array(
'request' => $request,
'exception' => $e,
));
]]>
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.
Events im Dashboard von Zend Server's Monitor
In diesem Screenshot sind die ersten zwei angeführten Events eigene Events die über den
ZendMonitor Log Writer geloggt wurden. Man kann anschließend auf ein
Event klicken um alle Ihr zugehörigen Informationen zu sehen.
Event Detail in Zend Server's Monitor
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 info Unterschlüssel geloggt; man kann sehen das
in diesem Beispiel das Request Objekt geloggt wurde.
Integration mit Zend_Application
Standardmäßig fügen die Kommandos zf.sh und zf.bat
die Konfguration für die Zend_Application
Log Ressource hinzu, welcher die Konfiguration für den
ZendMonitor Log Writer enthält. Zusätzlich verwendet der
ErrorController den konfigurierten Logger um Exceptions der
Anwendung zu loggen -- und bietet deshalb standardmäßig die Integration für Events im
Zend Monitor.
Wie vorher erwähnt fungiert der Logger, wenn die Monitor API in der
eigenen PHP Anwendung nicht erkannt wurde, als
NULL Logger.