Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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

Codeblock
languagephp
themeRDark
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('...');

...

Der Logger-Dienst verfügt über verschiedene Methoden für unterschiedliche Protokollierungsebenen / -prioritäten. Er  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.

...

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
collapsecode
Codeblock
languagetruephp
<?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('...');

      }

    }

  }

?>
languagephp
themeRDark
title


Abrufen der Einträge im Laufzeit-Log
Codeblock
collapselanguagetruephp
<?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.

Codeblock
languagejs
'log' => [
    'lastInternalCall' => true
]

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

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.