Log

Brandbox integriert sich nahtlos in Monolog, eine beliebte PHP logging Bibliothek, um Log-Nachrichten zu erstellen und zu speichern. Bitte konfigurieren Sie Monolog wie hier beschrieben.

Eine Nachricht loggen

use brandbox\component\log; $log = log\log::get(); $log->emergency('...'); $log->alert('...'); $log->critical('Some critical error occured!'); $log->error('...'); $log->warning('...'); $log->notice('...'); $log->info('...'); $log->debug('...');

Bitte beachten Sie die unterschiedlichen Protokollierungsebenen.

Log-Level-Konfiguration

Der Logger-Dienst verfügt über verschiedene Methoden für unterschiedliche Protokollierungsebenen / -prioritäten. Er ist so konfiguriert, dass er auf der Ebene einer Nachricht verschiedene Aktionen ausführt. Abhängig von der oben beschrieben Konfiguration werden alle Nachrichten an den Browser gesendet. 

\Monolog\Logger::DEBUG

Bis zu diesem Log-Level werden Ausgaben an den Browser gesendet.

\Monolog\Logger::CRITICAL

Ab diesem Log-Level werden E-Mails an den Administrator gesendet.

Wo werden Logs gespeichert?

Logs werden im Ordner /temp/log/ abgelegt und gemäß Rotate-Einstellungen vorgehalten.

Logging pro Laufzeit

Zusätzlich zum persistenten Logging bietet brandbox die Möglichkeit Logs pro Laufzeit zu sammeln und diese bei Bedarf in ein notifyBlock-Objekt zu verwandeln. Dieses kann in der Oberfläche ausgegeben werden.

Erstellen eines Eintrages im Laufzeit-Log
<?php namespace brandbox\sample\plugin\lib\execute { use brandbox\admin\plugin; /** * @author Max Mustermann <mustermann@konmedia.com> */ class example extends plugin\lib\executeAbstract { /** * @return void */ public function execute() { $log = $this ->getApplicationConfig() ->getRuntimeLog() ; $log->emergency('...'); $log->alert('...'); $log->critical('...'); $log->error('...'); $log->warning('...'); $log->notice('...'); $log->info('...'); $log->debug('...'); } } } ?>



Abrufen der Einträge im Laufzeit-Log
<?php namespace brandbox\sample\plugin { use brandbox\admin\plugin; /** * @author Max Mustermann <mustermann@konmedia.com> */ class example extends plugin\lib\requestAbstract { /** * @return array */ public function get() { $notifications = $this ->getApplicationConfig() ->getRuntimeLog() ->getNotifications() ; return ['notifications' => $notifications]; } } } ?>

Last internal calls

Es ist möglich sich im Log den jeweils letzten brandbox-call ausgeben zu lassen. Zu dem Zweck wird in der config.php eine Konfiguration ergänzt.

Achtung: Diese Funktion darf ausschließlich zu lokalen Testzwecken aktiviert werden. Es kann im Live-Betrieb dazu kommen, dass Objekt-Daten ausgegeben werden, die besser nicht im Log landen (bspw. personenbezogene Daten).

E-Mail-Benachrichtigungen für Einträge im Ereignislog

Definieren einer neuen Regel

  • Klicken Sie in der Hauptnavigation der Administrationsoberfläche auf das Schraubenschlüssel Symbol

  • Öffnen Sie die Karte Logs im Bereich Konfiguration

  • Klicken Sie auf die Datenbanktabelle Benachrichtigungen

  • Erstellen Sie eine neue Regel mit einem Klick auf das Plus Symbol

Eine Regel basiert auf einem Suchfilter, welcher die relvanten Einträge des Ereignislogs filtert. Sie können diese Suchfilter über die Toolbar der Tabelle Ereignislog verwalten. Die E-Mail-Benachrichtigungen werden über einen Cronjob versendet, welcher standardmäßig deaktiviert ist und explizit aktiviert werden muss.

Eventübersicht

Klassenname

Beschreibung

Klassenname

Beschreibung

OnPopulateParameter

Wird vor dem Versand der E-Mail-Benachrichtigungen ausgelöst und definiert die in der E-Mail-Vorlage verfügbaren Parameter welcher in der Eigenschaft parameter festgelegt werden.