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!

Le délai d'expiration de session absolue commence au moment de la création de session, tandis qu'un délai d'expiration inactif de session démarre au moment de la non-opération de l'utilisateur. Le délai d'expiration de session absolue convient aux scénarios où un contrôle strict du cycle de vie de la session est nécessaire, tels que les applications financières; Le délai d'attente de session inactif convient aux applications qui souhaitent que les utilisateurs maintiennent leur session active pendant longtemps, comme les médias sociaux.

La défaillance de la session du serveur peut être résolue en suivant les étapes: 1. Vérifiez la configuration du serveur pour vous assurer que la session est correctement définie. 2. Vérifiez les cookies des clients, confirmez que le navigateur le prend en charge et l'envoyez-le correctement. 3. Vérifiez les services de stockage de session, tels que Redis, pour vous assurer qu'ils fonctionnent normalement. 4. Examiner le code de demande pour assurer la logique de session correcte. Grâce à ces étapes, les problèmes de conversation peuvent être diagnostiqués et réparés efficacement et l'expérience utilisateur peut être améliorée.

Session_Start () IsCrucialInPhpFormanAgingUsersessions.1) ItinitiateSanEwSessionIfNoneExists, 2) ConsomaSanExistingSession, and3) SetSasessionCooKieforContinuityAcrossrequests, permettant aux applications liées à la réaction et à la personne.

La définition de l'indicateur httponly est cruciale pour les cookies de session car il peut effectivement empêcher les attaques XSS et protéger les informations de session utilisateur. Plus précisément, 1) l'indicateur httponly empêche JavaScript d'accéder aux cookies, 2) l'indicateur peut être réglé via Setcookies et Make_Response dans PHP et FLASK, 3) Bien qu'il ne puisse pas être empêché de toutes les attaques, elle devrait faire partie de la politique de sécurité globale.

PhpSessionsSsolvetheproblemOf-MainainingStateCrossMultiplehttprequestsByStoringDataontheserverAndassociatingitwithauniquesessionId.1) ils storentaserver, généralement infilesordatabases, et de lasse de lastoredinacookietatevevedata.2)

PhpSessionsCanstorestrings, Numbers, Arrays, Andobject.1.Strings: TextDatalikeUserames.2.Numbers: IntegersorFloatsForCounters.3.arrays: listslikeshoppingcarts.4.Objects: complexestructuresthataReSerialized.

TostartaphpSession, usessession_start () aTTheScript'sbeginning.1) PlaceItBeForeanyOutputToSetTheSessionCooKie.2) USESSIONSFORUSERDATALIKELOGINSTATUSORSHOPPINGSCARS.3) RegegeraSesessionIdStopreventfixationAtTACKS.4)

La régénération de session fait référence à la génération d'un nouvel ID de session et à l'invalidation de l'ancien ID lorsque l'utilisateur effectue des opérations sensibles en cas d'attaques fixes de session. Les étapes de mise en œuvre incluent: 1. Détectez les opérations sensibles, 2. Générer un nouvel ID de session, 3. Détruiser l'ancien ID de session, 4. Mettre à jour les informations de session côté utilisateur.


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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

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

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

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