perroquet-team team mailing list archive
-
perroquet-team team
-
Mailing list archive
-
Message #00069
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