Un fichier de log sert à garder trace des erreurs survenant dans une application PHP. Par exemple, lorsque survient une erreur, en plus d'afficher à l'écran un message d'erreur, on peut enregister quelques informations dans un fichier. Ce fichier pourra être lu régulièrement par un administrateur ou même par une application.
A chaque instance d'erreur correspond une ligne dans notre fichier. Il sera naturellement ordonnée selon la date : on rajoute les lignes les unes après les autres.
On convient d'un format particlulier pour nos lignes. Il est important de conserver le contexte dans lequel survient l'erreur : la date et l'heure, la page, l'identifiant de l'utilisateur connecté...
Par exemple le schéma suivant :
<comment>date et heure \t identifiant de l'utilisateur \t page \t description de l'erreur</comment>
Le caractère spécial \t représente une tabulation : nos champs seront donc séparés par une tabulation.
Ainsi à chaque erreur, on appelle la fonction suivante : error_log().
function error_log($ desc ) {
global $ ERROR_FILE , $ visitor ;
$ ligne = date(' Y-m-d H:i:s ' ). " \t " . $ _SERVER [ ' PHP_SELF ' ] . " \t " . $visitor ->get_login (). " \t $ desc " ;
if ($ fp = fopen($ ERROR_FILE , " a + " )) {
fwrite($ fp , $ ligne , 1024 );
fclose($ fp );
}
}
|
On suppose que les informations sur l'utilisateur connecté sont accessibles via un objet de session $visitor, dont la méthode get_login() retourne l'identifiant. La variable $_SERVER['PHP_SELF'] contient le nom de la page en cours. On pourrait la completer par $_SERVER['QUERY_STRING'] afin de connaître le détail des paramètres passés au script...
Note : ne pas gérer les erreurs qui peuvent survenir dans la fonction de gestion des erreurs !
|