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.