156 votes

Comment imprimer un journal de débogage?

J'aimerais déboguer ce code, mais j'imagine qu'imprimer un journal sur un écran ou un fichier me convient parfaitement.

Comment dois-je imprimer un journal en code php? Les print/printf habituels semblent aller à la sortie HTML et non à la console.

J'ai un serveur Apache exécutant le code PHP.

213voto

chx Points 5381

Un truc moins connu est que mod_php mappe stderr au journal Apache. Et il existe un flux pour cela, donc file_put_contents('php://stderr', print_r($foo, TRUE)) dumpera joliment la valeur de $foo dans le journal des erreurs Apache.

181voto

Olivier Berger Points 411
 error_log(print_r($variable, TRUE)); 
 

pourrait être utile

28voto

pthurlow Points 886

Vous pouvez utiliser error_log pour envoyer à vos serveurs le fichier journal des erreurs (ou un autre fichier facultatif si vous le souhaitez).

27voto

user3029507 Points 26

Si vous êtes sur Linux:

 file_put_contents('your_log_file', 'your_content');
 

ou

 error_log ('your_content', 3, 'your_log_file');
 

puis en console

 tail -f your_log_file
 

Ceci affichera continuellement la dernière ligne insérée dans le fichier.

7voto

Sylverdrag Points 3373

Vous avez besoin de changer votre état d'esprit. Vous écrivez PHP, pas que ce soit d'autre, c'est que vous avez l'habitude d'écrire. Débogage en PHP n'est pas fait dans un environnement de la console.

En PHP, vous disposez de 3 catégories de débogage solutions:

  1. Sortie vers une page web (voir dBug de la bibliothèque pour une meilleure vision des choses).
  2. Écrire dans un fichier journal
  3. Dans la session de débogage avec xDebug

Apprendre à les utiliser à la place de chercher à faire de PHP se comporter comme toute autre langue, vous êtes utilisé pour.

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