Comment logger correctement les erreurs WordPress

WordPress loggue les erreurs et les avertissements dans un fichier debug.log. Si votre site produit une erreur 500, affiche une page blanche, ou arrête le chargement à moitié page, le fichier debug.log est le fichier à consulter pour en connaître la raison. Par défaut, ce fichier n’existe pas.

Pour activer l’utilisation du fichier, dans le fichier wp-config avant la ligne :

/* C’est tout, ne touchez pas à ce qui suit ! */

Ajoutez ce code : 

  // Activer le mode WP_DEBUG
define('WP_DEBUG', true);

// Activer l'enregistrement de débogage dans le fichier /wp-content/debug.log
define('WP_DEBUG_LOG', true);

// Désactiver l'affichage des erreurs et des alertes 
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

// Utiliser les versions de dev des fichiers JS et CSS du noyau (nécessaire seulement si vous modifiez ces fichiers)
define('SCRIPT_DEBUG', true);

Si votre site produit une erreur, rendez-vous dans le dossier /wp-content/ et vous aurez un fichier debug.log. Vous aurez plus de détails dans la documentation officielle.

Mais le gros souci avec la solution ci-dessus est que votre fichier debug.log devient visible à tout le monde. N’importe qui peut naviguer à l’adressse http://votresite.com/wp-content/debug.log pour ouvrir le fichier. 

Si votre fichier robots.txt n’est pas correctement configuré, ce fichier debug.log peut même se retrouver sur Google. 

Ce fichier peut contenir des infos confidentielles de votre site ou d’autres infos que toute personne malveillante peut utiliser pour tenter de hacker votre site. C’est pour cette raison que dans la documentation, on vous conseille d’activer l’option deboggage uniquement quand votre site est en développement.

Sur un site live, j’ai trouvé la solution ci-dessous qui évite d’exposer le fichier debug.log au public. La solution consiste à stocker ce fichier en dehours du dossier public où vous stockez les fichiers de votre site. 

En dehors du dossier public_html ou httpdocs, créez un dossier wp-logs, et dedans un fichier debug.log

Puis ouvrez wp-config.php, supprimez toute mention de WP_DEBUG, et  avant  la ligne :

/* C’est tout, ne touchez pas à ce qui suit ! */ 

Ajoutez le code ci-desssous : 

define('WP_DEBUG', true);
if ( WP_DEBUG ) {
 
    // turn off wordpress debug (otherwise it will override)
    define( 'WP_DEBUG_LOG', false );
    define( 'WP_DEBUG_DISPLAY', false );
 
    // specify new safe path
    $path = realpath( $_SERVER["DOCUMENT_ROOT"] . '/..' ) . '/wp-logs/debug.log';
         
    // enable php error log
    @ini_set( 'log_errors', 'On' ); // enable or disable php error logging (use 'On' or 'Off')
    @ini_set( 'error_log', $path );
 
}

Vous pouvez maintenant naviguer dans le dossier wp-logs pour consulter le fichier debug.log si votre site produit une erreur. 

Vous aimerez aussi...

1 réponse

  1. Hervel dit :

    Bonjour,
    Si on ne trouve pas de fichier /wp-content/debug.log , est-ce que cela veut dire qu’il n’y pas d’erreur ?
    Merci

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *