Logs et debug : fonctions utiles

Pour aider à corriger une erreur dans un script, ou pour suivre des événements sur un site, il est utile d’enregistrer des logs personnalisés.

Voici un exemple qui vous permet de générer des logs personnalisés :

/**
* @param $message
* @param $new_line
*/
function set_logs( $message = "", $new_line = false ) {
$file = "/logs/logs-" . date( 'Y-m-d' ) . ".log";
$separator = "";

if ( true === $new_line ) {
$separator = "\n";
}

$content = $separator . date( 'd.m.Y H:i:s' ) . " [" . $_SERVER["REMOTE_ADDR"] . "] : " . $message . "\n";
error_log( $content, 3, $file );
}

Exemple d’utilisation :

set_logs( "Lancement de la mise à jour des produits", true ); 
set_logs( "Les produits ont été correctement mis à jour" );
set_logs( "Le stock a été correctement mis à jour" );
set_logs( "Lancement de la mise à jour des images", true );
set_logs( "1 erreur a eu lieu sur l'image 1245 et 7896" );

Rendu, dans le fichier /logs/logs-2022-02-08.log :

08.02.2022 10:50:18 [00.00.00.00] : Lancement de la mise à jour des produits
08.02.2022 10:50:18 [00.00.00.00] : Les produits ont été correctement mis à jour
08.02.2022 10:50:18 [00.00.00.00] : Le stock a été correctement mis à jour

08.02.2022 10:50:18 [00.00.00.00] : Lancement de la mise à jour des images
08.02.2022 10:50:18 [00.00.00.00] : 1 erreur a eu lieu sur l'image 1245 et 7896

Pour suivre un type d’événement particulier, vous pouvez créer des fichiers de logs différents. Vous pouvez également activer l’enregistrement des logs seulement lorsque vous êtes dans votre environnement de développement.

define('ENV', 'PROD') ; // PROD OU DEV

/**
* @param $message
* @param $new_line
*/
function set_logs( $message = "", $new_line = false ) {
if (defined('ENV') && ENV != "DEV" ) {
return ;
}

// La suite du code...
}

Si cet article "Logs et debug : fonctions utiles" vous a aidé, si vous avez des questions ou des améliorations à proposer, n'hésitez pas à me laisser un commentaire en bas de page !
Charlie Stram,
Développeur web freelance

Vous aimerez aussi...

Laisser un commentaire

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