Comment crée un traceur de bug en php

WRInaute discret
Bonjour,

J'aimerais savoir si vous connaissez certaines astuces ou fonctions à utiliser pour crée un traceur de bug php.

C'est à dire :
Lorsqu'une page est exécuter et qu'un bug (parse error, warning etc..) apparaît, un mail soit envoyer avec les détails les plus précis possible au webmaster et qu'un message d'excuse apparaisse .


Cordialement
 
WRInaute passionné
Un Try Catch (dispo que en PHP5) te permettrait de faire ça.

Sinon si tu es sur un dédie : tu t'envois le fichier de log des erreurs php une fois par jour (mais là t'as pas de message pour le client).
 
WRInaute accro
Le problème du try catch, c'est qu'il faut mettre l'appel à la fonction de log d'erreur à chaque fois.

Avec la fonction set_error_handler, tu définit la fonction qui gère les erreurs et tu place le logging dedans.
 
WRInaute discret
kazhar a dit:
Le problème du try catch, c'est qu'il faut mettre l'appel à la fonction de log d'erreur à chaque fois.

Avec la fonction set_error_handler, tu définit la fonction qui gère les erreurs et tu place le logging dedans.

J'utilise aussi set_error_handler, ça marche pas mal.

J'aurais une autre question, en relation avec le traçage de l'erreur. Imaginons qu'un internaute veuille afficher la page1.php, qui fait appel à une fonction définie dans page2.php, qui elle même fait appel à une autre fonction définie dans page3.php. Si une erreur survient dans cette dernière, je n'arrive à récupérer comme information que : erreur à la page3.php à la ligne x. Comment savoir que la fonction dans page3.php avait été appelée par page2.php à la ligne y, elle même appelée par page.php à la ligne z ?

Merci !
 
WRInaute discret
Moof a dit:
kazhar a dit:
Le problème du try catch, c'est qu'il faut mettre l'appel à la fonction de log d'erreur à chaque fois.

Avec la fonction set_error_handler, tu définit la fonction qui gère les erreurs et tu place le logging dedans.

J'utilise aussi set_error_handler, ça marche pas mal.

J'aurais une autre question, en relation avec le traçage de l'erreur. Imaginons qu'un internaute veuille afficher la page1.php, qui fait appel à une fonction définie dans page2.php, qui elle même fait appel à une autre fonction définie dans page3.php. Si une erreur survient dans cette dernière, je n'arrive à récupérer comme information que : erreur à la page3.php à la ligne x. Comment savoir que la fonction dans page3.php avait été appelée par page2.php à la ligne y, elle même appelée par page.php à la ligne z ?

Merci !

Je me réponds à moi-même si ça peut aider quelqu'un :) . Ce que je cherchais à faire est parfaitement rempli par la fonction debug_print_backtrace()
 
Discussions similaires
Haut