Fonctions PHP d'erreur et de journalisationFunctions
Introduction aux erreurs et à la journalisation PHP
Les fonctions d'erreur et de journalisation vous permettent de gérer et d'enregistrer les erreurs.
Les fonctions d'erreur permettent aux utilisateurs de définir des règles de gestion des erreurs et de modifier la façon dont les erreurs sont journalisées.
Les fonctions de journalisation vous permettent d'enregistrer l'activité de l'application et d'envoyer des messages de journal par e-mail, vers les journaux système ou vers d'autres machines.
Configuration à l'exécution
Les fonctions d'erreur sont affectées par le fichier de configuration php.ini.
Options de configuration des erreurs et de la journalisation :
| Paramètre | Valeur par défaut | Description | Modifiable |
|---|---|---|---|
| error_reporting | NULL | Définit le niveau de rapport d'erreurs PHP et renvoie le niveau actuel (numérique ou constante). | PHP_INI_ALL |
| display_errors | "1" | Cette option définit si les messages d'erreur sont affichés dans le cadre de la sortie à l'écran, ou masqués à l'utilisateur. Remarque :Cette fonctionnalité ne doit pas être utilisée dans un environnement de production (utilisez-la pendant le développement et les tests). |
PHP_INI_ALL |
| display_startup_errors | "0" | Même si display_errors est activé, les messages d'erreur lors du démarrage de PHP ne seront pas affichés. Il est fortement recommandé de définir display_startup_errors sur off, sauf à des fins de débogage. | PHP_INI_ALL |
| log_errors | "0" | Détermine s'il faut journaliser les erreurs d'exécution de script dans le journal d'erreurs du serveur ou dans error_log. Notez qu'il s'agit d'une option de configuration spécifique au serveur. | PHP_INI_ALL |
| log_errors_max_len | "1024" | Définit le nombre maximal d'octets de log_errors. Les informations sur la source de l'erreur sont ajoutées à error_log. La valeur par défaut est 1024. Si elle est définie sur 0, cela signifie une longueur illimitée. Ce paramètre de longueur s'applique aux erreurs journalisées, aux erreurs affichées et à $php_errormsg. | PHP_INI_ALL |
| ignore_repeated_errors | "0" | Ne pas journaliser les messages répétés. Les erreurs répétées doivent se produire sur la même ligne de code dans le même fichier, sauf si ignore_repeated_source est défini sur true. | PHP_INI_ALL |
| ignore_repeated_source | "0" | Lorsque les messages répétés sont ignorés, ignorer également la source du message. Lorsque ce paramètre est activé, les messages répétés n'enregistreront pas s'ils ont été générés par des fichiers différents ou des lignes de code source différentes. | PHP_INI_ALL |
| report_memleaks | "1" | Si ce paramètre est défini sur Off, les informations sur les fuites de mémoire ne seront pas affichées (sur stdout ou dans le journal). | PHP_INI_ALL |
| track_errors | "0" | Si activé, la dernière erreur sera toujours présente dans la variable $php_errormsg. | PHP_INI_ALL |
| html_errors | "1" | Désactiver les balises HTML dans les messages d'erreur. | PHP_INI_ALL PHP_INI_SYSTEM dans PHP <= 4.2.3. |
| xmlrpc_errors | "0" | Désactive le rapport d'erreurs normal et formate les erreurs sous forme de messages d'erreur XML-RPC. | PHP_INI_SYSTEM |
| xmlrpc_error_number | "0" | Utilisé comme valeur de l'élément faultCode de XML-RPC. | PHP_INI_ALL |
| docref_root | "" | Le nouveau format de message d'erreur inclut une page de référence correspondante qui décrit spécifiquement l'erreur, ou décrit la fonction qui a causé l'erreur. Pour fournir les pages du manuel, vous pouvez télécharger le manuel dans la langue correspondante depuis le site officiel de PHP et définir l'URL dans ini sur l'adresse locale correspondante. Si votre copie locale du manuel est accessible via "/manual/", vous pouvez simplement définir docref_root=/manual/. Vous devez également définir docref_ext pour qu'il corresponde au suffixe de vos fichiers locaux, docref_ext=.html. Bien sûr, vous pouvez aussi définir une adresse de référence externe. Par exemple, vous pouvez définir docref_root=http://manual/en/ ou docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F" |
PHP_INI_ALL |
| docref_ext | "" | Voir docref_root. | PHP_INI_ALL |
| error_prepend_string | NULL | Contenu à afficher avant le message d'erreur. | PHP_INI_ALL |
| error_append_string | NULL | Contenu à afficher après le message d'erreur. | PHP_INI_ALL |
| error_log | NULL | Définit le fichier dans lequel les erreurs de script seront consignées. Ce fichier doit être accessible en écriture par l'utilisateur du serveur web. | PHP_INI_ALL |
Installation
Les fonctions de gestion des erreurs et de journalisation font partie du cœur de PHP. Aucune installation n'est nécessaire pour utiliser ces fonctions.
Fonctions d'erreur et de journalisation PHP
PHP: Indique la première version de PHP qui prend en charge cette fonction.
| Fonction | Description | PHP |
|---|---|---|
| debug_backtrace() | Génère une trace d'appels. | 4 |
| debug_print_backtrace() | Affiche une trace d'appels. | 5 |
| error_get_last() | Récupère la dernière erreur survenue. | 5 |
| error_log() | Envoie une erreur vers le journal d'erreurs du serveur, un fichier ou une cible distante. | 4 |
| error_reporting() | Spécifie quelles erreurs sont signalées. | 4 |
| restore_error_handler() | Restaure le gestionnaire d'erreurs précédent. | 4 |
| restore_exception_handler() | Restaure le gestionnaire d'exceptions précédent. | 5 |
| set_error_handler() | Définit une fonction de gestionnaire d'erreurs définie par l'utilisateur. | 4 |
| set_exception_handler() | Définit une fonction de gestionnaire d'exceptions définie par l'utilisateur. | 5 |
| trigger_error() | Crée un message d'erreur défini par l'utilisateur. | 4 |
| user_error() | Alias de trigger_error(). | 4 |
Constantes d'erreur et de journalisation PHP
PHP: Indique la première version de PHP qui prend en charge cette constante.
| Valeur | Constante | Description | PHP |
|---|---|---|---|
| 1 | E_ERROR | Erreur fatale à l'exécution. Une erreur qui ne peut pas être corrigée. Arrête l'exécution du script. | |
| 2 | E_WARNING | Erreur non fatale à l'exécution. N'arrête pas l'exécution du script. | |
| 4 | E_PARSE | Erreur d'analyse à la compilation. Les erreurs d'analyse ne devraient être générées que par l'analyseur syntaxique. | |
| 8 | E_NOTICE | Notification à l'exécution. Le script rencontre quelque chose qui pourrait être une erreur, mais cela peut aussi se produire lorsque le script s'exécute normalement. | |
| 16 | E_CORE_ERROR | Erreur fatale au démarrage de PHP. C'est comme E_ERROR du cœur de PHP. | 4 |
| 32 | E_CORE_WARNING | Erreur non fatale au démarrage de PHP. C'est comme E_WARNING du cœur de PHP. | 4 |
| 64 | E_COMPILE_ERROR | Erreur fatale à la compilation. C'est comme E_ERROR générée par le moteur de script Zend. | 4 |
| 128 | E_COMPILE_WARNING | Erreur non fatale à la compilation. C'est comme E_WARNING générée par le moteur de script Zend. | 4 |
| 256 | E_USER_ERROR | Erreur fatale générée par l'utilisateur. C'est comme E_ERROR générée par le programmeur à l'aide de la fonction PHP trigger_error(). | 4 |
| 512 | E_USER_WARNING | Erreur non fatale générée par l'utilisateur. C'est comme E_WARNING générée par le programmeur à l'aide de la fonction PHP trigger_error(). | 4 |
| 1024 | E_USER_NOTICE | Notification générée par l'utilisateur. C'est comme E_NOTICE générée par le programmeur à l'aide de la fonction PHP trigger_error(). | 4 |
| 2048 | E_STRICT | Avis à l'exécution. PHP vous suggère de modifier votre code pour améliorer l'interopérabilité et la compatibilité. | 5 |
| 4096 | E_RECOVERABLE_ERROR | Erreur fatale capturable. C'est comme un E_ERROR qui peut être capturé par un gestionnaire défini par l'utilisateur (voir set_error_handler()). | 5 |
| 6143 | E_ALL | Tous les niveaux d'erreur et d'avertissement, sauf E_STRICT (à partir de PHP 6.0, E_STRICT fera partie de E_ALL). | 5 |