← Back to team overview

perroquet-team team mailing list archive

Push de quelques loggers

 

Je viens de pusher quelques loggers de plus.

Le principe d'utilisation est simple:

1) On a grosso modo autant d'object logger qu'on veut.
    Pour l'instant j'en ai mis un par classe qui faisait des "print"
    Ces logger sont crées dans les constructeurs de la façon suivante:

        self.logger = logging.Logger("ExerciseRepositoryManager")
        self.logger.setLevel(defaultLoggingLevel)
        self.logger.addHandler(defaultLoggingHandler)


2) Du coup pour afficher des messages "dans le contexte de la classe"
dans laquelle on est
    on fait:

     self.logger.debug("Le message qu'on veut")

     de même
     self.logger.info(...)
     self.logger.warn(...)
     self.logger.error(...)
     self.logger.exception(...)

     suivant le "niveau" de log voulu.

3) Les constantes par defaut;

        defaultLoggingLevel
        defaultLoggingHandler

    sont definie dans perroquetlib.core et utilisé par toutes les classes
    créant un logger.

Du coup en modifiant la définition de ces variables dans core.py
on peut modifier "globalement":
    la verbosité des log  avec defaultLoggingLevel
    la facon dont on loggue avec defaultLoggingHandler

Le defaultLoggingHandler actuel affiche sur sys.stdout avec un format
qui donne ça:
jeu. 00:23:40.117-[Perroquet::INFO] last open file :
/home/usdtim/.local/share/perroquet/repo_root/main/www.soundguideweb.com/alison_1.0/instance.perroquet

Le mieux à terme serait de pouvoir choisir tout ça via le fichier de conf.
mais ça sera pour plus tard :-)

J'ai mis un seul logger pour les classes gui_xxxx vu qu'elles ont toutes
une référence vers "gui" mais on pourrait en créer des locaux à chaque classe.

Bon évidemment tout ça est anecdotique pour Perroquet mais bon je pense
que vous apprécierez la faciliter qu'on a à logguer ce qu'on veut avec ça
relativement simplement.


-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org