CakePHP - Protokollierung

Das Anmelden bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die log () - Funktion wird vom LogTrait bereitgestellt, dem gemeinsamen Vorfahren für fast alle CakePHP-Klassen.

Protokollierungskonfiguration

Wir können die Anmeldedatei konfigurieren config/app.php. In der Datei befindet sich ein Protokollabschnitt, in dem Sie die Protokollierungsoptionen wie im folgenden Screenshot gezeigt konfigurieren können.

Standardmäßig werden zwei Protokollebenen angezeigt - error und debugbereits für Sie konfiguriert. Jeder verarbeitet unterschiedliche Nachrichtenebenen.

CakePHP unterstützt verschiedene Protokollierungsstufen, wie unten gezeigt -

  • Emergency - System ist unbrauchbar

  • Alert - Maßnahmen müssen sofort ergriffen werden

  • Critical - Kritische Bedingungen

  • Error - Fehlerbedingungen

  • Warning - Warnbedingungen

  • Notice - Normaler aber signifikanter Zustand

  • Info - Informationsnachrichten

  • Debug - Nachrichten auf Debug-Ebene

Schreiben in die Protokolldatei

Es gibt zwei Möglichkeiten, wie wir in eine Protokolldatei schreiben können.

Die erste ist die Verwendung der statischen write()Methode. Das Folgende ist die Syntax der Statikwrite() Methode.

Syntax Schreiben (Integer | String $ Level , gemischte $ Nachricht , String | Array $ Kontext [])
Parameter

Der Schweregrad der zu schreibenden Nachricht. Der Wert muss eine Ganzzahl oder Zeichenfolge sein, die einer bekannten Ebene entspricht.

Zu protokollierender Nachrichteninhalt.

Zusätzliche Daten zur Protokollierung der Nachricht. Der spezielle Bereichsschlüssel kann übergeben werden, um zur weiteren Filterung der zu verwendenden Protokollmodule verwendet zu werden. Wenn eine Zeichenfolge oder ein numerisches Indexarray übergeben wird, wird dies als Bereichsschlüssel behandelt. SehenCake\Log\Log::config() Weitere Informationen zum Protokollieren von Bereichen.

Kehrt zurück

Boolescher Wert

Beschreibung

Schreibt die angegebene Nachricht und den angegebenen Typ in alle konfigurierten Protokolladapter. Konfigurierte Adapter werden sowohl an die Variablen $ level als auch an $ message übergeben. $ level ist eine der folgenden Zeichenfolgen / Werte.

Die zweite ist die Verwendung der log() shortcut Funktion für alle mit der LogTrait Das Aufrufen von log () wird intern aufgerufen Log::write() - -

Beispiel

Nehmen Sie Änderungen in der config/routes.php Datei wie im folgenden Programm gezeigt.

config/routes.php

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',
      ['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('logex',['controller'=>'Logexs','action'=>'index']);
   $builder->fallbacks();
});

Ein ... kreieren LogexsController.php Datei bei src/Controller/LogexsController.php. Kopieren Sie den folgenden Code in die Controller-Datei.

src/Controller/LogexsController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Log\Log;
   class LogexsController extends AppController{
      public function index(){
         /*The first way to write to log file.*/
         Log::write('debug',"Something didn't work.");
         /*The second way to write to log file.*/
         $this->log("Something didn't work.",'debug');
      }
   }
?>

Erstellen Sie ein Verzeichnis Logexs beim src/Template und unter diesem Verzeichnis erstellen Sie eine ViewDatei namens index.php. Kopieren Sie den folgenden Code in diese Datei.

src/Template/Logexs/index.php

Something is written in log file. Check log file logs\debug.log

Führen Sie das obige Beispiel aus, indem Sie die folgende URL aufrufen.

http: // localhost / cakephp4 / logex

Ausgabe

Bei der Ausführung erhalten Sie die folgende Ausgabe.

Die Protokolle werden der Datei log / debug.log hinzugefügt.