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

WBOY
Libérer: 2023-10-09 19:26:01
original
1364 Les gens l'ont consulté

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal