Laravel est un framework PHP populaire qui possède de nombreuses fonctions intégrées pour faciliter notre développement, parmi lesquelles la journalisation en fait partie. En enregistrant les journaux, nous pouvons localiser rapidement les problèmes dans le programme et améliorer la stabilité et la maintenabilité du programme. Dans cet article, nous explorerons comment se connecter à l'aide de Laravel Logging.
Laravel Logging est une méthode de journalisation intégrée au framework Laravel. Il écrit les journaux sur différents supports de stockage en spécifiant des pilotes, tels que des fichiers, des bases de données, syslog, redis, etc. Dans le framework Laravel, le pilote par défaut est un fichier unique, mais nous pouvons également modifier le pilote par défaut grâce à une configuration simple pour s'adapter à différentes situations.
Par défaut, le fichier de configuration de Laravel Logging se trouve dans config/logging.php. Dans ce fichier, nous pouvons définir la configuration globale des journaux, telle que le pilote de journal par défaut, l'emplacement de stockage des fichiers journaux et les méthodes de traitement pour différents niveaux de journalisation.
Par défaut, Laravel Logging active le pilote pour un seul fichier situé dans storage/logs/laravel.log. Dans le framework Laravel, les messages de journal peuvent être introduits à l'aide de la façade Log, par exemple :
use IlluminateSupportFacadesLog; Log::info('This is an information message.'); Log::error('Something went wrong.');
En utilisant le code ci-dessus, vous pouvez écrire des informations et des messages de journal de niveau d'erreur dans le fichier journal par défaut. D'autres niveaux de journal peuvent également être enregistrés en fonction. sa méthode d'écriture.
En plus du fichier de pilote de journal par défaut, nous pouvons également utiliser d'autres pilotes, tels que des fichiers datés, la rotation des journaux, l'envoi de journaux à des services distants via des requêtes HTTP, etc. Dans le fichier config/logging.php, nous pouvons définir directement le pilote de journal et les paramètres, par exemple :
'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => 'debug', 'days' => 14, ], 'syslog' => [ 'driver' => 'syslog', 'level' => 'warning', ]
Nous pouvons utiliser le pilote quotidien pour diviser les fichiers journaux selon la date, et le cycle de chaque fichier est de 14 jours. Nous pouvons également utiliser le pilote syslog pour envoyer des messages de journal au service de journalisation du système, tel que le démon Linux syslogd.
Dans les applications pratiques, nous devons souvent enregistrer certaines informations contextuelles en même temps, telles que l'ID utilisateur, l'URI demandé, l'adresse IP du client, etc. Dans Laravel Logging, nous pouvons enregistrer ces informations via le contexte du journal.
Par exemple, dans une requête HTTP, nous pouvons utiliser le code suivant pour enregistrer certaines informations contextuelles dans le fichier journal :
use IlluminateSupportFacadesLog; Log::channel('mylog')->withContext([ 'user_id' => $request->user()->id, 'ip' => $request->getClientIp(), 'uri' => $request->getUri(), ])->info('An information message with context.');
Dans le code ci-dessus, nous utilisons la méthode canal de la façade Log et spécifions un journal nommé mylog aisle . Utilisez ensuite la méthode withContext pour transmettre des informations contextuelles dans l'enregistreur, et enfin utilisez la méthode info pour enregistrer le message du journal dans un fichier.
En plus d'utiliser la configuration par défaut de Laravel Logging, nous pouvons également implémenter un système de journalisation plus complexe en écrivant un composant de journalisation personnalisé.
Tout d'abord, nous devons créer une nouvelle configuration de canal de journal, par exemple :
'custom' => [ 'driver' => 'custom', 'via' => AppLoggingCustomLogger::class, 'level' => 'debug', ],
Dans la configuration ci-dessus, nous avons spécifié un pilote personnalisé et instancié un rédacteur de journal personnalisé à l'aide de AppLoggingCustomLogger::class.
Ensuite, nous pouvons écrire un composant d'écriture de journal personnalisé, par exemple :
<?php namespace AppLogging; use MonologFormatterHtmlFormatter; use MonologHandlerStreamHandler; use MonologLogger; class CustomLogger { static public function __invoke(array $config) { $logger = new Logger('custom'); $handler = new StreamHandler($config['path']); $handler->setFormatter(new HtmlFormatter()); $logger->pushHandler($handler); return $logger; } }
Dans l'exemple ci-dessus, nous avons créé une classe appelée CustomLogger, qui utilise certaines fonctionnalités du composant Monolog pour enregistrer l'écriture dans le fichier spécifié et l'enregistrer en HTML. format.
Enfin, nous pouvons utiliser un enregistreur personnalisé de la manière suivante :
use IlluminateSupportFacadesLog; Log::channel('custom')->info('A custom information message.');
De cette façon, nous pouvons contrôler entièrement la mise en œuvre de Laravel Logging et répondre à des besoins de journalisation plus personnalisés.
Résumé
Laravel Logging est une méthode de journalisation intégrée au framework Laravel. Elle peut enregistrer les messages de journal sur divers supports de stockage tels que des fichiers, des bases de données, syslog, etc. Nous pouvons contrôler la méthode d'enregistrement et le contenu des messages de journal via des fichiers de configuration et un enregistrement contextuel. De plus, nous pouvons également personnaliser de manière flexible la mise en œuvre de Laravel Logging en écrivant des composants de journalisation personnalisés. La journalisation via Laravel Logging contribue à la stabilité et à la maintenabilité du programme et constitue une partie très importante du développement de Laravel.
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!