» Créer un fichier de log que pour soi…

Créer un fichier de log que pour soi…

fichier de log

fichier de log

Les fichiers de log, c'est bien, surtout quand on doit corriger une erreur et qu'on a besoin de savoir comment, ou et quand elle s'est produite. Le soucis c'est qu'un site en production génère souvent un tas de logs du fait que les utilisateurs utilisent le site (heureusement non ?). Du coup le développeur est noyé d'informations et peine à trouver le bug, ce qui est dommage puisque les logs sont censés l'aider ! Pour cela j'ai développé un petit script php qui affiche un fichier de log en dehors de ceux du cms. L'astuce consiste à simplement filtrer l'ip afin de noter dans le fichier de log que les actions du développeur.

Voici le script :

public static function iplog($sValue){
$ipclient=$_SERVER['REMOTE_ADDR']; //détermine quelle adresse ip est en cours d'utilisation
if($ipclient!='xxx.xxx.xxx.xxx') //filtre l'ip, remplacer les xxx.xxx... par votre ip, si vous ne la connaissez pas, faite un echo sur $ipclient
return;
ob_start();
$sFileName =_ROOT_DIR_.'/mondossierdelog/log.txt';    //  <= chemin du fichier de log, la constante _ROOT_DIR_ doit être définie au moment de l'initialisation des fichiers du site !
var_export($sValue);
$tab_debug=ob_get_contents();
$val='('.$_SERVER['PHP_SELF']. ') ==> ' .$tab_debug;
ob_end_clean();
if (is_writable($sFileName)) {
if (! $vHandle = fopen($sFileName, 'a')) {
echo "Unable to open ({$sFileName})";
}
if (fwrite($vHandle, $val . "\r\n") === FALSE) {
echo "Unable write to ({$sFileName})";
}
fclose($vHandle);
} else {
echo "{$sFileName} is not writeable";
}
}

Cette fonction est pratique,assurez vous que le fichier de log existe à l'endroit ou il doit être écrit, je ne le rajoute pas dans ce script en automatique pour le rendre plus clair. Ce script a l'avantage d'écrire aussi bien les variables que les tableaux de valeurs, un peu comme print_r ou var_dump.

Les commentaires sont fermés.