Die Klasse Logger ist ein Tool, mit dem Logging-Aufgaben einfach und zentral bewerkstelligt werden können. Um die Performance einer Anwendung nicht durch häufige, verteilte und konkurrierende File-Zugriffe zu beeinträchtigen, sollte der Logger als Singleton-Instanz erzeugt und verwendet werden. Die Logfile-Einträge werden dann am Ende eines Requests gesammelt in das entsprechende Logfile geschrieben. Der Logger verwendet dazu den Registry-Wert LogDir aus dem Namespace apf::core. Dieser wird mit dem absoluten Pfad zum aktuellen Verzeichnis plus Unterordner logs initialisiert. Soll ein anderes Log-Verzeichnis verwendet werden, so kann der Pfad in der Bootstrap-Datei vor dem Erstellen der Page- oder des FrontController per
Registry::register('apf::core','LogDir','/Pfad/zu/meinem/Log/Verzeichnis');angepasst werden. Der angegebene Pfad dient der Ablage aller Log-Dateien einer Applikation.
Zur Verwendung des Loggers muss dieser zunächst per
import('core::logging','Logger');eingebunden werden. Anschließend kann per
$log = &Singleton::getInstance('Logger');eine Referenz auf die Instanz des Loggers im aktuellen Gültigkeitsbereich erzeugt werden. Das Hinzufügen eines Eintrags mit dem Inhalt MESSAGE zu einem Logfile mit dem Namen FILENAME ist mit dem Aufruf
$log->logEntry('FILENAME','MESSAGE');erledigt. Der dritte Parameter (optional) der Methode logEntry() definiert die SEVERITY der Meldung und kann frei definiert werden. Für Fehler wird üblicherweise ERROR eingesetzt, Standard ist INFO.