Bonjour, Je suis actuellement en cour de refonte d'un site d'inscription à des stages de récupérations de points de permis. J'avais pensais faire un système de logs qui enregistrerai plusieurs choses et notamment : - les informations de chaques inscription - les logs des transaction paypal ou autre - etc ...** Cela me permettrai de garder une trace en cas de problème Est ce une bonne idée et avez vous des conseils, voir des idées de scripts ? Peut être que ce serait une bonne idée de tutoriel Couss

3 réponses


Je trouve ton idée intéressante et effectivement cela te permettrait de garder une trace de chaque evenement.
Il te suffit juste d'écrire dans un fichier de log en mettant date/heure et event
Pas besoin de faire un tuto pour ça je pense

Bon courage pour ta refonte

Couss
Auteur

Bah je pense que c'est plus compliquer que juste écrire dans un fichier. Car certes sur un petit site les logs ne seront pas forcement lourd mais sur de grosse plateforme et dans mon cas s'il y as beaucoup d'inscription un système d'archive/zippage pourrai être interessant.
On peut aussi réfléchir à des getter pour le backoffice

Salut,

J'ai déjà été confronté au même genre de problématique dans une société e-commerce où j'ai travaillé.. On faisait des log sur les actions utilisateurs mais aussi backoffice (ex : saisie de stock, de produit, de prix, etc ...).
Pour cela on utilisait un petit bout de code comme celui-ci (c'était plus complet mais je n'ai pas accès aux sources :) .. normal) :

Tout d'abord la table SQL (pas besoin de beaucoup d'infos) :

id (INT)
user_id (INT) ForeignKey // Penser à id 0 si utilisateur pas connecté
action (STRING 80) // l'action de l'utilisateur ou endroit où se trouvait (ex : inscription)
comment (STRING 255) // Petit commentaire de ce qui s'est passé (ex : inscription de l'utilisateur id:504)
ip (STRING 40) // Si utilisateur non connecté (ou connecté)
datetime (STRING 12) // timestamp du log

Une classe Php pour y enregistrer les logs :

class Log {

    public static function write($action, $comment = '') {
        global $db, $user;
        // implique d'avoir au préalable une variable globale '$db' contenant une instance de classe de requêtage sql
        // $user : instance d'un utilisateur
        $user_id = ($user) ? $user->id : 0;
        $user_ip = isset($_SERVER"REMOTE_ADDR"]) ? $_SERVER"REMOTE_ADDR"] : '';
        $db->insert('Logs', array( // ou faire un mysql_query ...
            'user_id' => $user_id,
            'action' => $action,
            'comment' => $comment,
            'ip' => $user_ip,
            'datetime' => time(),
        ));
    }
}

Pour l'appeler :

Log::write("inscription", "inscription de l'utilisateur id:$user_id");

En espérant que cela puisse t'aider...

EDIT :
Tu peux aussi ajouter un champ 'type' dans la table afin d'y enregistrer le niveau d'alerte (ex : alert, warning, success, ..).
Ceci te permettra de te créer un tableau de synthèse des logs selon leurs niveau d'importance...
Et l'appel se ferait comme ceci :

Log::write("error", "action", "commentaire");