Pour debugger WordPress, il existe la constante WP_DEBUG que l’on trouve dans le fichier wp_config.php situé à la racine du site.

Pour activer le mode debug il convient de passer cette constant WP_DEBUG à true, ce qui aura pour conséquence d’afficher sur les pages de votre site les erreurs ou avertissements.

Pas très joli lorsque le site est live, on peut alors utiliser les variables WP_DEBUG_DISPLAY que l’on initialise à FALSE (aucune notification ne sera affichée en front) et WP_DEBUG_LOG dont l’initialisation à TRUE permet d’afficher les erreurs et avertissements dans le fichier /wp-content/debug.log que l’on trouvera dans le répertoire /wp-content situé à la racine de l’installation WordPress.

En résumé, chercher WP_DEBUG dans le fichier wp_config.php qui par défaut est initialisé à FALSIE, initialisez le à TRUE et ajouter les 2 lignes suivantes WP_DEBUG_DISPLAY et WP_DEBUG_LOG .

define('WP_DEBUG', true);
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );

Il est possible de modifier la localisation du fichier debug.log :

define( 'WP_DEBUG_LOG', '/debug/debug.log' );

Avertissement : Le fichier debug.log est généré automatiquement lors d’un avertissement ou erreur PHP sur votre site. Si vous ne trouvez pas ce fichier dans votre arborescence, provoquez une erreur PHP.

Écrire dans le fichier debug.log sous WordPress

Il est possible d’écrire dans le fichier debug.log à l’aide de la fonction suivante

if (!function_exists('write_log')) {
	function write_log($log) {
			if (WP_DEBUG === TRUE) {
					if (is_array($log) || is_object($log)) {
							error_log(print_r($log, true));
					} else {
							error_log($log);
					}
			}
	}
}

write_log('J\'écris ici ce que je veux');

Écrire dans un fichier .log sous WordPress

Indépendemment de WP_DEBUG et du fichier debug.log, voici une fonction qui permet d’écrire dans un fichier log appelé ici my_debug.log et qui va se créer automatiquement, ici à la racine (ABSPATH) de votre site.

if (!function_exists('updatelog')) {
  function updatelog($str)
  {
	if( is_string($str) )
	{
		$logFile = fopen(ABSPATH.'my_debug.log', 'a');
		fputs($logFile, $str.PHP_EOL);
		fclose($logFile);
	}
  }
}
updatelog ('J\'écris ici ce que je veux');

Mots-clés :
0 réponses

Laisser un commentaire

Participez-vous à la discussion?
N'hésitez pas à contribuer!

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.