Le module de logs est très important.
Il permettra de gérer la lecture et écriture des logs au format CSV. Sont mémorisés :
- Le nom d'utilisateur
- L'action effectuée
- Le projet concerné
- Un commentaire sur l'action
- la date et l'heure de l'action au format
TimeStamp?
Ainsi, on pourra savoir qui a fait telle action et que tels utilisateurs a fait ou essayer de faire telle action sur tel ou tel projet.
Il faut pouvoir lire et écrire les logs. L'écriture peut se faire en définissant des paramètres par défaut, qui ne seront pas à repréciser lors de l'écriture de l'action. La lecture pourra se faire en définissant des filtres.
DOCUMENTATION DU MODULE
class logs
| Classe de gestion de logs pour l'application de Gestion de Projets de l'IUT de Belfort-Montbéliard.
|
| Utilisation :
|
| from logs import logs
| monLog = logs([user][, action][, projet][, commentaire][, fileLog])
|
| Méthodes implémentées :
| - monLog.defUser(name)
| - monLog.defAction(description)
| - monLog.defProjet(name)
| - monLog.defComment(chaine)
| - monLog.defFileLog(name)
| - monLog.writeLog([user][, action][, projet][, comment][, fileLog])
|
| - Lire un log :
| A venir dans la prochaine version de la classe.
|
| Documentation des méthodes :
|
| Créer un objet log :
| monLog = logs([user][, action][, projet][, comment][, fileLog])
| Les paramètres, s'ils sont omis, seront à définir par la suite à l'aide des méthodes prévues à cet effet.
|
| Définit une action par défaut :
| monLog.defAction(description)
| ou description est une chaine de caractère.
|
| Définir un commentaire par défaut :
| monLog.defComment(chaine)
| ou chaine est une chaine de caractère.
|
| Définir le fichier de log :
| monLog.defFileLog(name)
| ou name est une chaine de caractère.
|
| Définit un projet par défaut :
| monLog.defProjet(name)
| ou name est une chaine de caractère.
|
| Définit un utilisateur par défaut :
| monLog.defUser(name)
| ou name est une chaine de caractère.
|
| Ecrire un log :
| monLog.writeLog([user][, action][, projet][, comment][, fileLog])
| Les paramètres, s'ils sont omis, prennent les valeurs par défaut définies au préalable.
|
| Exemple:
| monLog.writeLog("toto", "upload", "projet1", "Upload ok")
| monLog.defUser("titi")
| monLog.defProjet("Projet tutoré")
| monLog.writeLog(action = "Upload", comment = "Mise à jour", fileLog = "/home/titi/logs.txt")
|
|
EXEMPLE DE SCRIPT
# -*- coding:Utf-8 -*-
# Importe le module
from logs import logs
# Crée un objet log sans paramètre par défaut
log = logs()
# Définit un fichier de log par défaut
log.defFileLog("projet.log")
# Définit un utilisateur par défaut
log.defUser("martinet")
# Idem...
log.defProjet("Projet tutoré")
log.defAction("Action de test")
log.defComment("Histoire de dire quelquechose dans le commentaire, quoi...")
# Ecrit une entrée de log en utilisant les valeurs par défaut
log.writeLog()
# Ecrit une entrée de log en utilisant les valeurs transmises en paramètre
log.writeLog("hubscher", "Une autre action", "Un autre projet", "Ecrit dans un autre fichier de log", "projet2.log")
# Ecrit une entrée de log en utilisant les valeurs fournies en paramètre, et les valeurs par défaut pour les paramètres manquants.
log.writeLog(user="martinet", action="Nouveau test", comment="Ecrit dans le log par défaut, donc projet.log, et avec le projet par défaut, donc 'Projet tutoré'")
# Crée un objet log2 en précisant des paramètres PAR DEFAUT
log2 = logs(user="martinet", action="Sauvegarde", fileLog="projet2.log", comment="Paramètres définis à la création de l'objet log2")
# Idem ci-dessus.
log2.writeLog(projet="Projet1?")
log2.writeLog(projet = "Projet 2")