Compétences en matière de gestion des erreurs PHP 7 : Comment utiliser la fonction set_error_handler pour enregistrer les erreurs dans un fichier journal
Pendant le processus de développement, il est très important de capturer et d'enregistrer avec précision les erreurs. PHP fournit une variété de mécanismes de gestion des erreurs, dont l'un consiste à utiliser la fonction set_error_handler pour personnaliser le gestionnaire d'erreurs. Cet article explique comment utiliser la fonction set_error_handler pour enregistrer les erreurs PHP dans un fichier journal afin que nous puissions mieux suivre et résoudre les problèmes.
1. Introduction à la fonction set_error_handler
La fonction set_error_handler est utilisée pour définir les fonctions de gestion des erreurs définies par l'utilisateur. Cette fonction est appelée lorsque PHP rencontre une erreur, en lui transmettant les informations d'erreur en paramètre. Nous pouvons personnaliser le processus de gestion des erreurs grâce à cette fonction.
Ce qui suit est la syntaxe de base de la fonction set_error_handler :
bool set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
Parmi eux, le paramètre $error_handler est une fonction de gestion des erreurs appelable. De plus, le paramètre $error_types est un paramètre facultatif utilisé pour spécifier le type d'erreur. S'il n'est pas spécifié, la valeur par défaut E_ALL | E_STRICT sera utilisée, c'est-à-dire que toutes les erreurs strictes seront traitées.
2. Étapes pour enregistrer les erreurs dans un fichier journal
function custom_error_handler($error_number, $error_message, $error_file, $error_line) {
// 将错误信息写入日志文件 $log_message = "[" . date('Y-m-d H:i:s') . "] " . "Error: " . $error_message . " in " . $error_file . " on line " . $error_line . "
";
error_log($log_message, 3, 'error.log');
}
Dans cet exemple, nous allons Le fichier et le numéro de ligne d'erreur sont combinés dans un message de journal et la fonction error_log est utilisée pour écrire le message dans le fichier journal
// 将错误信息写入日志文件 $log_message = "[" . date('Y-m-d H:i:s') . "] " . "Error: " . $error_message . " in " . $error_file . " on line " . $error_line . "
";
error_log($log_message, 3, 'error.log');
//Définir une fonction de gestion des erreurs personnalisée
set_error_handler('custom_error_handler');// Déclencher délibérément une erreurecho $undefined_variable;
trigger_error("Ceci est une erreur de test", E_USER_NOTICE);
?>
Dans le code ci-dessus, nous avons d'abord créé une fonction de gestion des erreurs personnalisée custom_error_handler. Ensuite, utilisez la fonction set_error_handler pour définir la fonction en tant que gestionnaire d'erreurs global. Ensuite, le processus de gestion des erreurs est démontré en faisant écho à une variable non définie et en déclenchant une erreur personnalisée.
4. Conclusion
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!