Maison développement back-end tutoriel php Comment résoudre la journalisation et le débogage des erreurs dans le développement PHP

Comment résoudre la journalisation et le débogage des erreurs dans le développement PHP

Oct 09, 2023 pm 07:24 PM
php开发 错误调试 日志记录

Comment résoudre la journalisation et le débogage des erreurs dans le développement PHP

Comment résoudre la journalisation et le débogage des erreurs dans le développement PHP

Dans le processus de développement PHP, la journalisation et le débogage des erreurs sont des liens très importants. Une journalisation raisonnable peut nous aider à mieux suivre les problèmes pendant l'exécution du programme et à résoudre efficacement les erreurs ; les méthodes de débogage des erreurs peuvent nous aider à localiser et à résoudre rapidement les problèmes. Cet article vous fournira quelques solutions et exemples de code spécifiques sous deux aspects : la journalisation et le débogage des erreurs, pour vous aider à développer et déboguer des projets PHP plus efficacement.

1. Journalisation

1. Créer des fichiers journaux

Dans le développement PHP, nous pouvons enregistrer les événements clés et les informations sur les erreurs pendant l'exécution du programme en créant des fichiers journaux. Tout d'abord, nous devons définir le chemin d'un fichier journal, par exemple :

$logFile = '/var/www/html/logs/error.log';
Copier après la connexion

Ensuite, nous pouvons utiliser le code suivant pour créer une fonction de journalisation :

function writeLog($message){
    global $logFile;
    $time = date('Y-m-d H:i:s');
    $logData = "[$time] - $message" . PHP_EOL;
    file_put_contents($logFile, $logData, FILE_APPEND);
}
Copier après la connexion

Cette fonction accepte un paramètre $message, qui représente les informations qui doit être enregistré. À l'intérieur de la fonction, l'heure actuelle est obtenue et l'heure et les informations sont écrites dans le fichier journal dans un format spécifique. Le paramètre FILE_APPEND indique l'ajout des données du journal à la fin du fichier journal.

2. Utilisez la fonction de journalisation

Dans le code, lorsque nous rencontrons une situation qui nécessite une journalisation, nous pouvons appeler la fonction writeLog ci-dessus. Par exemple, lorsque nous rencontrons une erreur, nous pouvons enregistrer le journal comme ceci :

$errorMsg = '发生了一个错误';
writeLog($errorMsg);
Copier après la connexion

De cette façon, le message d'erreur sera écrit dans le fichier journal spécifié.

3. Utiliser les niveaux de journalisation

Afin de mieux organiser le contenu des journaux, nous pouvons utiliser des niveaux de journal (tels que INFO, ERREUR, DEBUG, etc.) pour distinguer différentes informations de journal. Différents niveaux peuvent être personnalisés en fonction des besoins réels. On peut modifier la fonction writeLog et ajouter un paramètre $logLevel pour spécifier le niveau de log :

function writeLog($message, $logLevel){
    // ...
    $logData = "[$time] [$logLevel] - $message" . PHP_EOL;
    // ...
}
Copier après la connexion

Lors de l'utilisation de cette fonction, il suffit de passer le niveau de log correspondant :

writeLog('这是一条信息日志', 'INFO');
writeLog('这是一条错误日志', 'ERROR');
writeLog('这是一条调试日志', 'DEBUG');
Copier après la connexion

De cette façon, le fichier log peut être basé sur le log niveau pour visualiser par catégorie.

2. Débogage des erreurs

1. Activer l'affichage des erreurs

Lors du développement de PHP, par défaut, PHP affichera toutes les informations sur les erreurs sur la page, ce qui est très utile pendant le processus de développement. Dans le fichier PHP.ini, recherchez le paramètre suivant :

display_errors = Off
Copier après la connexion

Changez-le par :

display_errors = On
Copier après la connexion

Activez l'affichage des erreurs.

2. Niveau de rapport d'erreurs

Lors du débogage des erreurs, nous pouvons utiliser la fonction error_reporting pour définir le niveau de rapport d'erreurs afin de filtrer les types d'erreurs à afficher. Par exemple, si nous souhaitons afficher uniquement deux types d'erreurs : E_ERROR et E_PARSE :

error_reporting(E_ERROR | E_PARSE);
Copier après la connexion

En définissant le niveau de rapport d'erreurs, vous pouvez efficacement bloquer certains messages d'avertissement non pertinents et rendre les messages d'erreur plus clairs.

3. Enregistrement des informations sur les erreurs

En plus d'afficher les informations sur les erreurs sur la page, nous pouvons également enregistrer les informations sur les erreurs dans un fichier journal pour faciliter le dépannage ultérieur. Vous pouvez utiliser la méthode de journalisation présentée précédemment pour écrire les informations d'erreur dans le fichier journal.

function handleError($errorCode, $errorMessage, $errorFile, $errorLine){
    $errorMsg = "Error: $errorMessage in $errorFile on line $errorLine";
    writeLog($errorMsg, 'ERROR');
}
set_error_handler('handleError');
Copier après la connexion

Grâce à la fonction set_error_handler, nous pouvons personnaliser une fonction de gestion des erreurs et appeler writeLog à l'intérieur de la fonction pour enregistrer les informations sur l'erreur.

Résumé :

Cet article présente comment résoudre les problèmes de journalisation et de débogage des erreurs lors du développement PHP, et donne des exemples de code spécifiques. L'enregistrement correct des journaux et l'utilisation de méthodes de débogage des erreurs peuvent nous aider à mieux dépanner et résoudre les problèmes et à améliorer l'efficacité du développement. J’espère que cela sera utile au travail de développement PHP de chacun !

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Exposition des exceptions Ajax et une liste de moyens de résoudre les erreurs Exposition des exceptions Ajax et une liste de moyens de résoudre les erreurs Jan 30, 2024 am 08:33 AM

Une anomalie Ajax révélée, la façon de traiter diverses erreurs nécessite des exemples de code spécifiques. En 2019, le développement front-end est devenu une position importante qui ne peut être ignorée dans l'industrie Internet. En tant que l'une des technologies les plus couramment utilisées dans le développement front-end, Ajax peut réaliser un chargement de page et une interaction de données asynchrones, et son importance va de soi. Cependant, diverses erreurs et exceptions sont souvent rencontrées lors de l'utilisation de la technologie Ajax. Comment gérer ces erreurs est un problème auquel tout développeur front-end doit être confronté. 1. Erreurs réseau Lorsque vous utilisez Ajax pour envoyer des requêtes, l'erreur la plus courante est

Comment utiliser Memcache dans le développement PHP ? Comment utiliser Memcache dans le développement PHP ? Nov 07, 2023 pm 12:49 PM

Dans le développement Web, nous devons souvent utiliser une technologie de mise en cache pour améliorer les performances du site Web et la vitesse de réponse. Memcache est une technologie de mise en cache populaire qui peut mettre en cache n'importe quel type de données et prend en charge une simultanéité élevée et une haute disponibilité. Cet article explique comment utiliser Memcache dans le développement PHP et fournit des exemples de code spécifiques. 1. Installer Memcache Pour utiliser Memcache, nous devons d'abord installer l'extension Memcache sur le serveur. Dans le système d'exploitation CentOS, vous pouvez utiliser la commande suivante

Conseils de développement Laravel : Comment gérer les exceptions et les enregistrements de journaux Conseils de développement Laravel : Comment gérer les exceptions et les enregistrements de journaux Nov 23, 2023 am 10:08 AM

Dans le développement de Laravel, la gestion des exceptions et la journalisation sont des éléments très importants, qui peuvent nous aider à localiser rapidement les problèmes et à gérer les exceptions. Cet article explique comment gérer les exceptions et les enregistrements de journaux pour aider les développeurs à mieux développer Laravel. Gestion des exceptions La gestion des exceptions signifie détecter l'erreur et la gérer en conséquence lorsqu'une erreur ou une situation inattendue se produit dans le programme. Laravel fournit une multitude de mécanismes de gestion des exceptions. Présentons les étapes spécifiques de la gestion des exceptions. 1.1 Types d'exceptions dans Larav

Comment créer une solution de journalisation personnalisée pour votre site Web PHP Comment créer une solution de journalisation personnalisée pour votre site Web PHP May 03, 2024 am 08:48 AM

Il existe plusieurs façons de créer une solution de journalisation personnalisée pour votre site Web PHP, notamment : en utilisant une bibliothèque compatible PSR-3 (telle que Monolog, Log4php, PSR-3Logger) ou en utilisant les fonctions de journalisation natives PHP (telles que error_log(), syslog( ), debug_print_backtrace()). La surveillance du comportement de votre application et le dépannage des problèmes peuvent être facilement effectués à l'aide d'une solution de journalisation personnalisée, par exemple : Utilisez Monolog pour créer un enregistreur qui enregistre les messages dans un fichier disque.

Comment effectuer la gestion des erreurs et la journalisation dans la conception de classes C++ ? Comment effectuer la gestion des erreurs et la journalisation dans la conception de classes C++ ? Jun 02, 2024 am 09:45 AM

La gestion des erreurs et la journalisation dans la conception des classes C++ incluent : Gestion des exceptions : détection et gestion des exceptions, utilisation de classes d'exceptions personnalisées pour fournir des informations d'erreur spécifiques. Code d'erreur : utilisez un entier ou une énumération pour représenter la condition d'erreur et renvoyez-la dans la valeur de retour. Assertion : vérifiez les conditions préalables et postérieures et lancez une exception si elles ne sont pas remplies. Journalisation de la bibliothèque C++ : journalisation de base à l'aide de std::cerr et std::clog. Bibliothèques de journalisation externes : intégrez des bibliothèques tierces pour des fonctionnalités avancées telles que le filtrage de niveau et la rotation des fichiers journaux. Classe de journal personnalisée : créez votre propre classe de journal, résumez le mécanisme sous-jacent et fournissez une interface commune pour enregistrer différents niveaux d'informations.

Optimisation de la journalisation du programme : partage de conseils sur la définition des niveaux de journalisation log4j Optimisation de la journalisation du programme : partage de conseils sur la définition des niveaux de journalisation log4j Feb 20, 2024 pm 02:27 PM

Optimisation de la journalisation du programme : Conseils pour définir les niveaux de journalisation log4j Résumé : La journalisation du programme joue un rôle clé dans le dépannage, le réglage des performances et la surveillance du système. Cet article partagera des conseils sur la configuration des niveaux de journalisation log4j, notamment sur la manière de définir différents niveaux de journaux et sur la manière d'illustrer le processus de configuration à l'aide d'exemples de code. Introduction : Dans le développement de logiciels, la journalisation est une tâche très importante. En enregistrant les informations clés pendant le processus d'exécution du programme, il peut aider les développeurs à découvrir la cause du problème et à effectuer l'optimisation des performances et la surveillance du système.

Points de connaissance du module de journalisation Python révélés : questions courantes réunies au même endroit Points de connaissance du module de journalisation Python révélés : questions courantes réunies au même endroit Mar 08, 2024 am 08:00 AM

Bases du module de journalisation Python Le principe de base du module de journalisation est de créer un enregistreur (logger) puis d'enregistrer des messages en appelant la méthode logger. Un enregistreur a un niveau qui détermine quels messages seront enregistrés. Le module de journalisation définit plusieurs niveaux prédéfinis, notamment DEBUG, INFO, ATTENTION, ERREUR et CRITICAL. importlogging#Créez un enregistreur nommé "my_logger" et définissez son niveau sur INFOlogger=logging.getLogger("my_logger")logger.setLevel(log

Conseil de développement : Comment se connecter aux applications ThinkPHP Conseil de développement : Comment se connecter aux applications ThinkPHP Nov 22, 2023 am 11:24 AM

Suggestions de développement : Présentation de la manière d'effectuer la journalisation dans les applications ThinkPHP : La journalisation est une tâche très importante lors du développement d'applications Web. Cela peut nous aider à surveiller l'état d'exécution de l'application en temps réel, à localiser les problèmes et à résoudre les bugs. Cet article explique comment effectuer la journalisation dans les applications ThinkPHP, y compris la classification des journaux, l'emplacement de stockage et la méthode de configuration. Parallèlement, certaines bonnes pratiques en matière de journalisation seront également partagées. 1. Classification des journaux de ThinkPHP : ThinkPHP prend en charge plusieurs types de classification des journaux

See all articles