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 |
---|---|
| 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 |