44 votes

Comment puis-je enregistrer un backtrace PHP dans le journal des erreurs ?

J'utilise ça en ce moment :

 error_log(serialize(debug_backtrace()));

Mais je dois le désérialiser à chaque fois. Existe-t-il un meilleur moyen de stocker les backtraces ?

63voto

Álvaro G. Vicario Points 57607

Cela devrait générer une chaîne lisible :

 error_log(print_r(debug_backtrace(), true));

De plus, debug_print_backtrace() imprime la trace arrière sous forme de chaîne et sa sortie peut être capturée avec des fonctions de tampon de sortie standard :

 ob_start();
debug_print_backtrace();
error_log(ob_get_clean());

22voto

Igor Sydorenko Points 1425

De mon point de vue, la meilleure approche consiste à utiliser une fonctionnalité d'exception :

 $e = new Exception();
$e->getTraceAsString();

8voto

JapanPro Points 6278
    $log = var_export(debug_backtrace(), true);

Ensuite, utilisez la variable $log pour vous connecter au fichier ou quoi que ce soit.

4voto

Kzqai Points 7484

Un peu moche mais faisable, je fais ça :

  error_log('Identifying string so that it doesn\'t just end up as gibberish' . json_encode(debug_backtrace()));

3voto

Nicolas Bouvrette Points 1097

Pour ceux qui voudraient une version plus compacte, cela fera aussi l'affaire :

 error_log((new Exception())->getTraceAsString())

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X