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
collapselanguage
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('...');

      }

    }

  }

?>
Codeblock
php
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 

    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 

    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.