monologue: une puissante bibliothèque de journaux PHP qui vous aide à améliorer le développement des applications et l'efficacité de maintenance
L'enregistrement du journal est une partie indispensable du cycle de développement et de maintenance des applications, et cela dépend non seulement des données enregistrées, mais aussi de la façon dont elle est enregistrée. Cet article plongera dans le package monologue pour montrer comment il peut vous aider à tirer le meilleur parti de vos journaux.
Avantages de base:
- Largement intégré: Monolog est une bibliothèque de journaux populaire qui s'intègre à la plupart des cadres traditionnels pour faciliter les développeurs pour profiter de ses capacités de journalisation. Il suit la norme PHP-Fig, ce qui facilite le passage à d'autres implémentations.
- Traitement flexible: Monologa prend en charge plusieurs processeurs et mécanismes de bouillonnement, permettant aux développeurs d'enregistrer différents types de messages à différentes sorties. Il prend également en charge l'envoi de messages de journal aux services externes, tels que Slack, pour informer l'équipe lorsqu'une erreur se produit.
- Fonctionnellement riche: Monologue fournit une gamme de préprocesseurs pratiques pour contenir des informations détaillées telles que les pics de mémoire, les ID utilisateur et permet des formats de messages journaux personnalisés. Cela en fait un outil puissant pour l'exploitation forestière et le débogage pendant les cycles de développement / maintenance des applications.
Installation:
Monologue est disponible sur Packagist et peut être installé via le compositeur:
composer require 'monolog/monolog:1.13.*'
Si vous utilisez un cadre, Monolog fournit généralement une solution d'intégration. L'exemple suivant n'utilise pas l'intégration Framework et montre comment configurer Monolog dans aucune application.
Logueur de connexion:
Lors de la création d'un enregistreur, vous devez spécifier le nom du canal pour distinguer les différents enregistreurs. L'exemple suivant lie la bûcheron au conteneur d'application:
// app/bootstrap/container.php $logger = new \Monolog\Logger('general'); $app->container->logger = $logger;
Monologue suit la norme PSR-3, ce qui facilite le passage à d'autres implémentations. Vous pouvez utiliser les méthodes suivantes pour la journalisation (journal, débogage, informations, avertissement, erreur, critique, alerte, urgence):
$app->container->logger->info("一条INFO消息。");
Processeur:
Les messages de journal passeront par la liste des processeurs enregistrés. Le processeur doit spécifier le niveau de journal et l'état de bulle du processus (si le message continue de se propager). Par défaut, Monolog utilise MonologHandlerStreamHandler
pour enregistrer le journal à la sortie d'erreur standard. Les processeurs disponibles sont répertoriés dans la documentation.
L'exemple suivant montre comment utiliser plusieurs processeurs et mécanismes bouillonnants: journaux des informations sur la console du navigateur et les messages d'erreur à la sortie du terminal.
// app/bootstrap/container.php $logger = new \Monolog\Logger('general'); $browserHanlder = new \Monolog\Handler\BrowserConsoleHandler(\Monolog\Logger::INFO); $streamHandler = new \Monolog\Handler\StreamHandler('php://stderr', \Monolog\Logger::ERROR); $logger->pushHandler($browserHanlder); $logger->pushHandler($streamHandler); $app->container->logger = $logger;
// app/routes.php $app->get('/admin/users', function () use ($app) { $app->container->logger->info("另一条INFO消息"); $app->container->logger->error("另一条ERROR消息"); // ... });
Les messages d'erreur sont enregistrés dans le terminal comme prévu, mais pourquoi apparaissent-ils également dans la console du navigateur? Il s'agit du mécanisme bouillonnant de Monolog. Le message d'erreur est d'abord enregistré au terminal et si l'option de bulle est définie sur true, elle continue de se propager en haut de la file d'attente du processeur. Définissez l'option bouillonnante de streamHandler
composer require 'monolog/monolog:1.13.*'
Les journaux d'erreur ne sont désormais pas affichés dans la console du navigateur, à savoir comment séparer le niveau de journal.
Processeur Slack:
Avant d'utiliser le processeur Slack, vous devez obtenir le jeton pour l'autoriser à publier sur le canal Slack.
// app/bootstrap/container.php $logger = new \Monolog\Logger('general'); $app->container->logger = $logger;
Vous avez juste besoin de spécifier le jeton Slack et le nom du canal, le troisième paramètre facultatif est le nom du robot. Le niveau de journal de Slack est essentiel, mais vous pouvez le modifier en utilisant la méthode setLevel
.
$app->container->logger->info("一条INFO消息。");
Après avoir envoyé un message de journal, vous pouvez accéder à votre chaîne pour afficher les messages d'erreur enregistrés.
// app/bootstrap/container.php $logger = new \Monolog\Logger('general'); $browserHanlder = new \Monolog\Handler\BrowserConsoleHandler(\Monolog\Logger::INFO); $streamHandler = new \Monolog\Handler\StreamHandler('php://stderr', \Monolog\Logger::ERROR); $logger->pushHandler($browserHanlder); $logger->pushHandler($streamHandler); $app->container->logger = $logger;
FORMATINGER:
Chaque processeur a un formateur par défaut, s'il n'est pas spécifié, utilisez LineFormatter
. Vous pouvez passer à d'autres formateurs tels que HtmlFormatter
.
// app/routes.php $app->get('/admin/users', function () use ($app) { $app->container->logger->info("另一条INFO消息"); $app->container->logger->error("另一条ERROR消息"); // ... });
Les messages de journal seront désormais connectés à la console du navigateur au format HTML.
// app/bootstrap/container.php // ... $streamHandler = new \Monolog\Handler\StreamHandler('php://stderr', \Monolog\Logger::ERROR, false); // ...
Préprocesseur:
Le préprocesseur est utilisé pour ajouter plus de détails aux journaux. Par exemple, WebProcessor
Ajoutez plus de détails sur la demande (URL, IP, etc.).
// app/bootstrap/container.php // ... $slackHandler = new \Monolog\Handler\SlackHandler('xoxp-5156076911-5156636951-6084570483-7b4fb8', '#general', 'ChhiwatBot'); $logger->pushHandler($slackHandler); // ...
Lors de la journalisation, la journalisation passera par la liste des processeurs enregistrés et vous obtiendrez plus de détails.
$slackHandler->setLevel(\Monolog\Logger::ERROR);
Résumé:
Monologue est l'une des excellentes bibliothèques de journaux et s'intègre à la plupart des cadres traditionnels.
FAQ:
(La partie FAQ est omise ici parce que l'article est trop long et a une répétition élevée du contenu principal de l'article. Si nécessaire, vous pouvez poser des questions FAQ séparément et je leur répondrai un par un.)
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!

PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

Le PHP n'est pas en train de mourir, mais d'adapter et d'évoluer constamment. 1) PHP a subi plusieurs itérations de version depuis 1994 pour s'adapter aux nouvelles tendances technologiques. 2) Il est actuellement largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et d'autres domaines. 3) PHP8 introduit le compilateur JIT et d'autres fonctions pour améliorer les performances et la modernisation. 4) Utilisez OPCACHE et suivez les normes PSR-12 pour optimiser les performances et la qualité du code.

L'avenir de PHP sera réalisé en s'adaptant aux nouvelles tendances technologiques et en introduisant des fonctionnalités innovantes: 1) s'adapter aux architectures de cloud computing, de conteneurisation et de microservice, en prenant en charge Docker et Kubernetes; 2) introduire des compilateurs JIT et des types d'énumération pour améliorer l'efficacité des performances et du traitement des données; 3) Optimiser en continu les performances et promouvoir les meilleures pratiques.

En PHP, le trait convient aux situations où la réutilisation de la méthode est requise mais ne convient pas à l'héritage. 1) Le trait permet aux méthodes de multiplexage des classes pour éviter une complexité de succession multiple. 2) Lorsque vous utilisez un trait, vous devez faire attention aux conflits de méthode, qui peuvent être résolus par l'alternative et comme mots clés. 3) La surutilisation du trait doit être évitée et sa responsabilité unique doit être maintenue pour optimiser les performances et améliorer la maintenabilité du code.

Le conteneur d'injection de dépendance (DIC) est un outil qui gère et fournit des dépendances d'objets à utiliser dans les projets PHP. Les principaux avantages du DIC comprennent: 1. Le découplage, rendre les composants indépendants, et le code est facile à entretenir et à tester; 2. Flexibilité, facile à remplacer ou à modifier les dépendances; 3. Testabilité, pratique pour injecter des objets simulés pour les tests unitaires.

SPLFixedArray est un tableau de taille fixe en PHP, adapté aux scénarios où des performances élevées et une faible utilisation de la mémoire sont nécessaires. 1) Il doit spécifier la taille lors de la création pour éviter les frais généraux causés par un ajustement dynamique. 2) Sur la base du tableau de langue C, fonctionne directement de la mémoire et de la vitesse d'accès rapide. 3) Convient pour le traitement des données à grande échelle et les environnements sensibles à la mémoire, mais il doit être utilisé avec prudence car sa taille est fixe.

PHP gère les téléchargements de fichiers via la variable de fichiers $ \ _. Les méthodes pour garantir la sécurité incluent: 1. Vérifiez les erreurs de téléchargement, 2. Vérifiez le type et la taille du fichier, 3. Empêchez l'écrasement des fichiers, 4. Déplacez les fichiers vers un emplacement de stockage permanent.

Dans JavaScript, vous pouvez utiliser nullcoalescingoperator (??) et nullcoalescingAssIgnmentOperator (?? =). 1.? 2.?? Ces opérateurs simplifient la logique du code, améliorent la lisibilité et les performances.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),