Fonctions Error et Logging PHP

Introduction à PHP Error

Les fonctions Error et Logging permettent de gérer et d'enregistrer les erreurs.

Les fonctions Error permettent aux utilisateurs de définir les règles de gestion des erreurs et de modifier la manière dont les erreurs sont enregistrées.

Les fonctions de journalisation permettent aux utilisateurs de journaliser l'application et d'envoyer les messages de journalisation par e-mail, dans les journaux système ou vers d'autres machines.

Les fonctions error sont utilisées pour effectuer la gestion des erreurs et la journalisation.

Les fonctions error nous permettent de définir nos propres règles de gestion des erreurs et de modifier la manière dont les erreurs sont enregistrées.

Les fonctions de journalisation nous permettent d'envoyer des messages directement vers d'autres machines, par e-mail ou dans les journaux système.

Les fonctions de rapport d'erreur nous permettent de spécifier le type et le niveau des erreurs.

Installation

Les fonctions error font partie intégrante du noyau PHP. Il n'est pas nécessaire d'installer ces fonctions pour les utiliser.

Configuration Runtime

Le comportement de la fonction error est influencé par les paramètres définis dans php.ini.

Les options de configuration des erreurs et du journalisation sont les suivantes :

Nom Valeur par défaut Description Portée modifiable
error_reporting NULL Définir le niveau de rapport d'erreurs (entier ou constante nommée). PHP_INI_ALL
display_errors "1"

Définir si les erreurs doivent être affichées sur l'écran ou cachées à l'utilisateur.

Attention :Cette fonctionnalité ne doit pas être utilisée dans les systèmes de production (seulement supporté en développement).

PHP_INI_ALL
display_startup_errors "0"

Même si display_errors est activé, les informations d'erreur du processus d'initialisation de PHP ne seront pas affichées.

Remarque : Il est fortement recommandé de définir display_startup_errors sur désactivé à l'exception des fins de débogage.

PHP_INI_ALL
log_errors "0"

Définir si les informations d'erreur de l'exécution du script doivent être enregistrées dans le journal d'erreurs du serveur ou error_log.

Remarque : Il s'agit d'un paramètre de configuration spécifique au serveur.

Remarque : Il est fortement recommandé d'utiliser les journaux d'erreurs pour enregistrer les informations d'erreur affichées sur le site Web en production.

PHP_INI_ALL
log_errors_max_len "1024"

Définir la taille maximale en octets de log_errors. error_log ajoutera des informations sur l'origine des erreurs.

La valeur par défaut est 1024, si elle est définie sur 0, cela signifie qu'il n'y a pas de restriction sur la longueur.

La configuration de la longueur a une restriction sur les erreurs enregistrées, les erreurs affichées et $php_errormsg.

PHP_INI_ALL
ignore_repeated_errors "0"

Définir si les informations d'erreur répétées doivent être enregistrées.

Les erreurs répétées doivent apparaître sur la même ligne de code du même fichier, sauf si ignore_repeated_source est réglé sur true.

PHP_INI_ALL
ignore_repeated_source "0"

Définir si les informations d'erreur répétées doivent être enregistrées. Lorsque les messages répétés sont ignorés, leur origine est également ignorée.

Lorsque ce réglage est activé, les informations répétées ne seront pas enregistrées en fonction du fichier ou de la ligne de code source différente.

PHP_INI_ALL
report_memleaks "1" Si ce paramètre est réglé sur On (par défaut), afficher les rapports de fuites de mémoire détectées par le gestionnaire de mémoire Zend. PHP_INI_ALL
track_errors "0" Si activé, la dernière erreur restera toujours dans la variable $php_errormsg. PHP_INI_ALL
html_errors "1" Désactiver les balises HTML dans les informations d'erreur.
  • PHP_INI_ALL
  • PHP_INI_SYSTEM dans PHP <= 4.2.3.
xmlrpc_errors "0" Si activé, désactiver le rapport d'erreurs normal et configurer le format des erreurs en format d'information 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 "" (disponible depuis PHP 4.3) PHP_INI_ALL
docref_ext "" (disponible depuis PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL Définir la chaîne de caractères qui précède l'information d'erreur. PHP_INI_ALL
error_append_string NULL Définir la chaîne de caractères qui suit l'information d'erreur. PHP_INI_ALL
error_log NULL

Définir le fichier dans lequel les erreurs de script doivent être enregistrées. Ce fichier doit être accessible en écriture par l'utilisateur du serveur web.

Si la valeur spéciale syslog est utilisée, envoyer les informations d'erreur au journaliseur de système.

PHP_INI_ALL

Fonctions Error et Logging PHP

Fonction Description
debug_backtrace() Générer un backtrace.
debug_print_backtrace() Imprimer le backtrace.
error_get_last() Retourner la dernière erreur survenue.
error_log() Envoyer des messages d'erreur au journal des erreurs du serveur, à un fichier ou à une cible distante.
error_reporting() Définir quelles erreurs doivent être signalées.
restore_error_handler() Restaurer le programme de gestion des erreurs précédent.
restore_exception_handler() Restaurer le gestionnaire d'exceptions précédent.
set_error_handler() Définir la fonction de gestion des erreurs personnalisée.
set_exception_handler() Définir la fonction de gestion des exceptions personnalisée.
trigger_error() Créer des messages d'erreur de niveau utilisateur.
user_error() Alias de trigger_error()

Constantes prédéfinies d'erreurs et de journalisation PHP 5

Valeur Constante Description
1 E_ERROR Erreurs fatales au moment de l'exécution. Erreurs impossibles à corriger. Termine l'exécution du script.
2 E_WARNING Erreurs non fatales au moment de l'exécution. Ne termine pas l'exécution du script.
4 E_PARSE Erreurs de syntaxe lors de la compilation. Les erreurs d'analyse ne sont produites que par l'analyseur.
8 E_NOTICE Notifications au moment de l'exécution. Indique que le script rencontre une situation qui pourrait se présenter sous forme d'erreur, mais qui pourrait également être présente dans un script fonctionnant normalement.
16 E_CORE_ERROR Erreurs fatales lors du processus d'initialisation PHP. Erreurs similaires à E_ERROR, mais générées par le noyau du moteur PHP.
32 E_CORE_WARNING Avertissements lors du processus d'initialisation PHP (erreurs non fatales). Similaires à E_WARNING, mais générés par le noyau du moteur PHP.
64 E_COMPILE_ERROR Erreurs fatales lors de la compilation. Similaires à E_ERROR, mais générées par le moteur de script Zend.
128 E_COMPILE_WARNING Avertissements lors de la compilation (erreurs non fatales). Similaires à E_WARNING, mais générées par le moteur de script Zend.
256 E_USER_ERROR Informations d'erreur générées par l'utilisateur. Similaires à E_ERROR, mais générées par l'utilisateur lui-même en utilisant la fonction PHP trigger_error() dans le code.
512 E_USER_WARNING Informations d'alerte générées par l'utilisateur. Similaires à E_WARNING, mais générées par l'utilisateur lui-même en utilisant la fonction PHP trigger_error() dans le code.
1024 E_USER_NOTICE Informations de notification générées par l'utilisateur. Similaires à E_NOTICE, mais générées par l'utilisateur lui-même en utilisant la fonction PHP trigger_error() dans le code.
2048 E_STRICT Activer les recommandations de modification du code PHP pour assurer que le code a la meilleure compatibilité et compatibilité vers l'avant.
4096 E_RECOVERABLE_ERROR Erreurs fatales capturables. Cela signifie qu'une erreur très dangereuse s'est produite, mais que le moteur PHP n'est pas dans un état instable. Si cette erreur n'est pas capturée par le gestionnaire d'erreur personnalisé de l'utilisateur (voir set_error_handler()), elle deviendra une E_ERROR et le script s'arrêtera.
8192 E_DEPRECATED Avertissements de temps d'exécution. Après activation, des avertissements seront donnés pour les codes qui pourraient ne pas fonctionner correctement dans les versions futures.
16384 E_USER_DEPRECATED Informations d'avertissement générées par l'utilisateur. Similaires à E_DEPRECATED, mais générées par l'utilisateur lui-même en utilisant la fonction PHP trigger_error() dans le code.
32767 E_ALL Toutes les informations d'erreur et d'avertissement E_STRICT. Sauf celles spécifiées.