Utilisation d’un fichier de log pour faciliter le débogage en PHP

Il est possible d'utiliser un fichier de log pour faciliter le débogage d'une page PHP. Les informations de débogage seront enregistrées dans ce fichier plutôt que d'être affichées à l'écran, ce qui évite que des informations de débogage sensibles soient offertes par inadvertance aux utilisateurs malveillants.

▼Publicité

Bien que l'utilisation d'un débogueur soit idéale, le fichier de log est une alternative intéressante quand aucun débogueur n'est disponible. De plus, le fichier de log sera la seule alternative possible lorsqu'un problème technique empêche l'utilisation du débogueur et qu'il faut déboguer du code ne permettant pas l'affichage à l'écran (ex : si une instruction PHP précédent le session_start() affiche du texte à l'écran, le session_start() ne fonctionnera pas).

La fonction PHP error_log() permet d'enregistrer un message dans le fichier de log.

Ex :

PHP

error_log( "Mon premier message dans le fichier de log!" );

Par défaut, sous EasyPHP, error_log() enregistrera les informations de débogage dans le fichier :

    C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\binaries\apache\logs\error.log

au même titre qu'autres informations provenant d'Apache. C'est une configuration dans httpd.conf qui spécifie l'utilisation de ce fichier :

Fichier httpd.conf

# ErrorLog: The location of the error log file.

# If you do not specify an ErrorLog directive within a <VirtualHost>

# container, error messages relating to that virtual host will be

# logged here.  If you *do* define an error logfile for a <VirtualHost>

# container, that host's errors will be logged there and not here.

#

ErrorLog "logs/error.log"

Utilisation d'un fichier personnalisé pour enregistrer les informations de débogage

Il est possible de modifier le nom du fichier de log dans le fichier php.ini. Cependant, cette option n'est pas intéressante puisque tous les messages d'Apache seront  également enregistrés dans ce fichier.

Ex :

Fichier php.ini

error_log = "C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\debug.log"

On préférera spécifier par programmation le fichier de log à utiliser pour le débogage :

PHP

// l'utilisation d'une constante permet de spécifier le fichier de log à un seul endroit

define('DEBUG_LOG_FILE', 'C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\gagnonannie-monmenu\tmp\debug.log');

...

// ce message sera enregistré dans le fichier le log spécifié

error_log("Mon premier message dans le fichier de log personnalisé!", 3, DEBUG_LOG_FILE);

Pour plus d'information

« error_log ». PHP. http://php.net/manual/fr/function.error-log.php

« Using error_log() with print_r() to gracefully debug PHP ». Open Mutual – Company Blog. http://www.openmutual.org/2012/01/using-error_log-with-print_r-to-gracefully-debug-php/

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories