web-dev-qa-db-fra.com

Comment puis-je enregistrer une trace PHP dans le journal des erreurs?

J'utilise ceci 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?

36
Leo Jiang

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

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

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

ob_start();
debug_print_backtrace();
error_log(ob_get_clean());
48
Álvaro González

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

$e = new Exception();
$e->getTraceAsString();
12
Igor Sydorenko
    $log = var_export(debug_backtrace(), true);

Utilisez ensuite la variable $log pour vous connecter au fichier ou quoi que ce soit.

8
Pramendra Gupta

Un peu moche mais réalisable, je fais ça:

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

Ce qui suit peut être écrit dans un fichier .txt ou vous pouvez également accéder à son contenu (comme $ content [0]) par opposition à var_export qui est un peu plus délicat je trouve:

    $content = unserialize(serialize(debug_backtrace()));
0
Robert Sinclair