Maison  >  Article  >  cadre php  >  Comment utiliser la journalisation dans ThinkPHP6

Comment utiliser la journalisation dans ThinkPHP6

王林
王林original
2023-06-20 08:37:363727parcourir

Avec le développement rapide d'Internet et des applications Web, la gestion des logs devient de plus en plus importante. Lors du développement d’applications Web, la manière de rechercher et de localiser les problèmes est une question très critique. Un système de journalisation est un outil très efficace qui peut nous aider à accomplir ces tâches. ThinkPHP6 fournit un système de journalisation puissant qui peut aider les développeurs d'applications à mieux gérer et suivre les événements qui se produisent dans les applications.

Cet article expliquera comment utiliser le système de journalisation dans ThinkPHP6 et comment utiliser le système de journalisation pour mieux déboguer et gérer les applications.

1. Le système de journalisation de ThinkPHP6

Le système de journalisation de ThinkPHP6 est implémenté via la bibliothèque Monolog. Monolog est une bibliothèque de journalisation PHP qui peut enregistrer les informations de journalisation à différents endroits, tels que des fichiers, des bases de données, des serveurs SMTP, etc.

L'utilisation de Monolog dans ThinkPHP6 peut réaliser la gestion des journaux très facilement. Par défaut, ThinkPHP6 utilise un enregistreur de fichiers pour enregistrer les informations du journal dans le dossier des journaux du répertoire d'exécution du projet et les stocke séparément avec la date comme nom de fichier. Nous pouvons effectuer certains paramètres personnalisés dans le fichier de configuration, tels que modifier le répertoire de stockage, modifier le niveau de journalisation, sélectionner un autre processeur d'enregistrement, etc.

2. Cas d'utilisation

Dans le processus de développement précédent, il était parfois difficile de localiser les problèmes. À ce stade, nous pouvons utiliser le système de journalisation pour enregistrer l'état de fonctionnement du système et d'autres informations importantes, et c'est plus pratique. pour localiser les problèmes. Ce qui suit est une brève introduction à l’utilisation des journaux.

(1) Logging

Dans ThinkPHP6, Monolog divise les niveaux de journalisation en niveaux suivants :

  • DEBUG : informations de débogage détaillées.
  • INFO : informations significatives sur les événements, telles que la connexion de l'utilisateur.
  • AVERTISSEMENT : Il existe des informations sur les événements d'avertissement, mais elles n'affectent pas le système.
  • ERREUR : Une erreur s'est produite dans le système, mais elle n'affecte pas le fonctionnement continu du système.
  • CRITIQUE : Une erreur critique s'est produite dans le système et le système ne peut pas continuer à fonctionner.
  • ALERTE : Erreurs pour lesquelles une action immédiate doit être prise, comme l'indisponibilité de la base de données.
  • URGENCE : Le système ne peut pas fonctionner, car les composants principaux n'existent pas ou sont mal configurés.

La journalisation se fait via la classe de façade en rondins Log. Vous pouvez utiliser la classe de façade Log pour enregistrer dans les contrôleurs, les modèles, le middleware, etc. Une série de méthodes de niveau de journalisation disponibles ont été définies dans l'interface de la classe de façade, et il suffit de les appeler.

Par exemple :

use thinkacadeLog;

Log::error('This is an error message.');
Log::warning('This is a warning message.');
Log::info('This is an information message.');

(2) Vérifiez le journal

Pendant le processus de développement, nous devrons peut-être vérifier les informations du journal pour nous permettre de détecter plus facilement des problèmes dans le programme. Vous pouvez afficher les journaux des manières suivantes :

  • Affichage via les fichiers journaux : vous pouvez trouver les fichiers journaux enregistrés dans le dossier des journaux sous le répertoire d'exécution du projet et afficher les informations du journal via des outils tels que des éditeurs de texte.
  • Affichage via la console : vous pouvez saisir la commande suivante dans le terminal pour afficher les informations du journal :
php think list log

(3) Processeur d'enregistrement personnalisé

ThinkPHP6 fournit certains processeurs d'enregistrement par défaut, tels que des processeurs de fichiers, des processeurs Logentries, etc. . attendez. Nous pouvons également personnaliser les processeurs d'enregistrement pour répondre à des besoins spécifiques.

Par exemple, nous pouvons créer un processeur qui se connecte au stockage cloud :

use MonologHandlerAbstractProcessingHandler;

class CloudStorageHandler extends AbstractProcessingHandler
{
    public function __construct()
    {
        // 连接云存储,初始化操作
    }

    protected function write(array $record): void
    {
        // 将记录写入到云存储中
    }

    // 其他自定义方法
}

Ensuite, nous devons enregistrer ce processeur dans le fichier de configuration :

'handlers' => [
    'cloud_storage' => [
        'class'   => pploghandlerCloudStorageHandler::class,
    ],
],

'channels' => [
    'default' => [
        'handlers' => ['cloud_storage'],
    ],
],

À ce stade, nous pouvons l'utiliser dans l'application Processeur enregistré :

Log::channel('cloud_storage')->info('This is an information message.');

3. Résumé

Cet article explique comment utiliser le système de journalisation de ThinkPHP6 pour enregistrer l'état de fonctionnement du système et les informations importantes, et comment utiliser le système de journalisation pour le débogage lors de la localisation de problèmes. Il explique également comment personnaliser le processeur d'enregistrement pour répondre à des besoins spécifiques. J'espère que cet article pourra aider les lecteurs à mieux utiliser le système de journalisation dans ThinkPHP6.

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