Heim >Backend-Entwicklung >PHP-Tutorial >CakePHP-Protokoll
CakePHP-Frameworks bieten dem Entwickler verschiedene Arten von Funktionen und sind Open-Source-Tools. Aus Entwicklungssicht ist beispielsweise die Protokollierung sehr wichtig; Mithilfe eines Protokolls kann das Problem im Hinblick auf Fehler, Ausnahmen, verschiedene Benutzeraktivitäten, Benutzeraktionen während des Vorgangs und etwaige Hintergrundaktivitäten leicht gefunden werden. Normalerweise ist die Implementierung der Protokollierung eine sehr einfache und zeitsparende Tätigkeit. In CakePHP haben wir eine log()-Funktion, um die verschiedenen Aktivitäten, Fehler und Ausnahmen zu protokollieren. Für die Protokollimplementierung müssen wir die verschiedenen Parameter gemäß unseren Anforderungen konfigurieren.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Jetzt sehen wir uns an, wie wir wie folgt ein Login für CakePHP erstellen können.
Das Protokollieren von Informationen in CakePHP ist einfach – die log()-Arbeit wird von LogTrait übernommen, dem normalen Vorgänger einiger CakePHP-Klassen. Wenn es sich bei der Einstellung um eine CakePHP-Klasse (Controller, Component und View) handelt, können Sie Ihre Daten protokollieren. Sie können Log::write() auch einfach verwenden. Siehe Schreiben in Protokolle.
Log-Stream-Überwacher können für Ihre Anwendung oder einen Teil von Modulen von entscheidender Bedeutung sein. Für den Fall, dass Sie beispielsweise einen Datenbank-Holzfäller namens DatabaseLog als Bestandteil Ihrer Anwendung hatten; es würde eingestellt werden
application/Lib/Log/Engine/DatabaseLog.php.
Angenommen, Sie hätten einen Informationsdatenbank-Holzfäller als Modulkomponente, würde dieser in application/Plugin/LoggingPack/Lib/Log/Engine/DatabaseLog.php abgelegt. Wenn dies vereinbart ist, wird CakeLog versuchen, die Protokollströme zu stapeln, was durch den Aufruf von CakeLog::config() abgeschlossen wird. Die Anordnung unseres Datenbankprotokolls würde wie folgt aussehen:
App::uses('BaseLog', 'Log/Engine'); class DatabaseLog extends BaseLog { public function __construct($options = array()) { parent::__construct($options); // ... } public function write($specified type, $required message) { // write to the database. } }
Während CakePHP keine anderen Voraussetzungen für Log-Streams hat, als dass sie eine Erstellungstechnik ausführen sollten, hat die Erweiterung der BaseLog-Klasse einige Vorteile:
Es verwaltet somit die Grad- und Typkonfliktprojektion. Schließlich führt es die config()-Technik aus, von der erwartet wird, dass die durchgelesene Protokollierung funktioniert.
Die Erstellungstechnik jedes Loggers sollte zwei Grenzen akzeptieren: $type und $message (in einer bestimmten Reihenfolge). $type ist die Zeichenfolgenart der protokollierten Nachricht; Grundüberzeugungen sind Fehler, Warnung, Information und Fehlerbehebung. Darüber hinaus können Sie Ihre Typen charakterisieren, indem Sie sie verwenden, wenn Sie CakeLog::write.
aufrufenJetzt sehen wir uns an, wie wir die Anmeldung bei CakePHP wie folgt konfigurieren können.
Zuerst müssen wir die Datei app.php konfigurieren; Wir können den Protokollbereich mit verschiedenen Optionen konfigurieren.
'Log' => [ 'debug'=>[ 'className'=> 'Cake\Log\Engine\FileLog', 'path' => LOGS, 'file'=> 'debug', 'levels' => ['specified notice', 'required info', 'debug'], 'url' => env('Specified URL', null), ], 'error' => [ 'className'=> 'Cake\Log\Engine\FileLog', 'path' => LOGS, 'file'=> 'error', 'levels' => ['specified warning', 'error', 'critical', 'alert'], 'url' => env('Specified URL', null), ], },
Erklärung
Im obigen Code können wir standardmäßig sehen; Wir haben zwei Protokollebenen: eine Fehler- und eine Debugebene, die wir bereits konfiguriert haben, und sie verarbeitet die verschiedenen Ebenen der Nachricht. Im Grunde unterstützt CakePHP die verschiedenen Protokollierungsebenen wie folgt.
Jetzt sehen wir uns die Protokolldatei in CakePHP wie folgt an.
Wir können auf zwei verschiedene Arten in einen Protokolldatensatz schreiben.
Die erste besteht darin, die statische write()-Technik zu verwenden. Als nächstes folgt die sprachliche Struktur der statischen write()-Technik.
Syntax:
write(integer|string $level, blended $message, string|array $context [])
Parameter:
Der Ernsthaftigkeitsgrad der verfassten Nachricht. Der Wert sollte eine ganze Zahl oder eine Zeichenfolge sein, die einem bekannten Wert entspricht.
Nachrichteninhalt zum Protokollieren.
Zusätzliche Informationen, die zum Protokollieren der Nachricht verwendet werden sollen. Der einzigartige Verlängerungsschlüssel kann weitergegeben werden, um die Holzmotoren zusätzlich zu trennen. Wenn eine Zeichenfolge oder ein mathematischer Datensatz übergeben wird, wird dieser als Gradschlüssel behandelt. Weitere Daten zu Protokollierungsgraden finden Sie unter CakeLogLog::config().
Es wird zurückgegeben: boolean
Beschreibung: Verfasst die angegebene Nachricht und gibt sie an alle entworfenen Protokollkonnektoren ein. Angeordnete Konnektoren erhalten sowohl den $level- als auch den $message-Faktor. $level ist einer der begleitenden Strings/Werte. Die zweite besteht darin, die einfache Routenfunktion log() zu verwenden, die auf jedem Gerät verfügbar ist, das den LogTrait-Aufruf verwendet. log() ruft Log::write() auf.
Now let’s see an example of a log file as follows.
First, we need to make the changes in the routes.php file as follows.
<?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 message', 'home page']); $builder->connect('logex',['controller'=>'Logexs','action'=>'index']); $builder->fallbacks(); });
Now we need to create controller.php and write the following code as follows.
<?php namespace App\Controller; use App\Controller\AppController; use Cake\Log\Log; class LogexsController extends AppController{ public function index(){ /*First way to write log file.*/ Log::write('debug', "Something went wrong during execution."); /* Second way to write log file.*/ $this->log("Something went wrong during execution.", 'debug'); } } ?>
Create an index.php file under the view directory and write the following code.
Something went wrong during execution. Need to check log file\debug.log
Now we need to execute this file in localhost, and after execution, we will do some output that we illustrated by using the following screenshot.
After execution debug log was added to the debug.log file, as shown in the following screenshot.
We hope from this article you learn more about the CakePHP log. From the above article, we have taken in the essential idea of the CakePHP log and see the representation and example of the CakePHP log. Furthermore, this article taught us how and when to use the CakePHP log.
Das obige ist der detaillierte Inhalt vonCakePHP-Protokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!