Maison >développement back-end >tutoriel php >Journalisation CakePHP

Journalisation CakePHP

王林
王林original
2024-09-10 17:26:17765parcourir

La connexion à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie par LogTrait, qui est l'ancêtre commun de presque toutes les classes CakePHP.

Configuration de la journalisation

Nous pouvons configurer le fichier de connexion config/app.php. Il y a une section de journal dans le fichier, où vous pouvez configurer les options de journalisation comme indiqué dans la capture d'écran suivante.

Journalisation CakePHP

Par défaut, vous verrez deux niveaux de journalisation - erreur et débogage déjà configurés pour vous. Chacun gérera différents niveaux de messages.

CakePHP prend en charge différents niveaux de journalisation comme indiqué ci-dessous −

  • Urgence − Le système est inutilisable

  • Alerte − Des mesures doivent être prises immédiatement

  • Critique − Conditions critiques

  • Erreur − Conditions d'erreur

  • Avertissement − Conditions d'avertissement

  • Avis − Condition normale mais significative

  • Infos − Messages d'information

  • Débogage − Messages de niveau débogage

Écrire dans le fichier journal

Il existe deux manières d'écrire dans un fichier journal.

La première consiste à utiliser la méthode statique write(). Voici la syntaxe de la méthode statique write().

Syntaxe write( entier|chaîne $level, mixte $message, chaîne|array $context [] )
Paramètres
Syntax write( integer|string $level, mixed $message, string|array $context [] )
Parameters

The severity level of the message being written. The value must be an integer or string matching a known level.

Message content to log.

Additional data to be used for logging the message. The special scope key can be passed to be used for further filtering of the log engines to be used. If a string or a numerically index array is passed, it will be treated as the scope key. See CakeLogLog::config() for more information on logging scopes.

Returns

boolean

Description

Writes the given message and type to all of the configured log adapters. Configured adapters are passed both the $level and $message variables. $level is one of the following strings/values.

Le niveau de gravité du message en cours d'écriture. La valeur doit être un entier ou une chaîne correspondant à un niveau connu.

Contenu du message à enregistrer. Données supplémentaires à utiliser pour enregistrer le message. La clé de portée spéciale peut être transmise pour être utilisée pour un filtrage plus approfondi des moteurs de journalisation à utiliser. Si une chaîne ou un tableau d'index numérique est transmis, il sera traité comme la clé de portée. Voir CakeLogLog::config() pour plus d'informations sur les étendues de journalisation.

Retours booléen
Description

Écrit le message donné et tapez-le sur tous les adaptateurs de journaux configurés. Les adaptateurs configurés reçoivent les variables $level et $message. $level est l'une des chaînes/valeurs suivantes.

La seconde consiste à utiliser la fonction log() raccourci

disponible sur tout utilisateur utilisant le

LogTrait L'appel de log() appellera en interne Log::write()

<?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();
});

Exemple Apportez des modifications au fichier config/routes.php comme indiqué dans le programme suivant.

config/routes.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');
      }
   }
?>

Créez un fichier LogexsController.php dans src/Controller/LogexsController.php. Copiez le code suivant dans le fichier du contrôleur.

src/Controller/LogexsController.php

Créez un répertoire
Something is written in log file. Check log file logs\debug.log
Logexs

dans

src/Template

et sous ce répertoire, créez un fichier

View

appelé index.php. Copiez le code suivant dans ce fichier.

src/Template/Logexs/index.phpJournalisation CakePHP

Journalisation CakePHPExécutez l'exemple ci-dessus en visitant l'URL suivante. http://localhost/cakephp4/logex Sortie Lors de l'exécution, vous recevrez le résultat suivant. Les journaux seront ajoutés au fichier log/debug.log −

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn