J'implémente la journalisation Python dans mon application et je veux être en mesure de tirer parti des paramètres "par défaut" de la racine. Je veux utiliser les paramètres root parce que je ne veux pas avoir à définir un logger par module dans un fichier de configuration.Désactiver la journalisation pour un package particulier
Lorsque j'ouvre la journalisation de niveau DEBUG pour l'enregistreur racine, je rencontre un problème avec l'API QPID Python Client. Mes fichiers journaux se déversent des instructions de débogage Qpid:
Etc ..2011-03-16 09: 16: 18664 - qpid.messaging.io.ops - DEBUG - ENVOYÉ [8de6b2c]: ..
2011- 03-16 09: 16: 18,667 - qpid.messaging.io.raw - DEBUG - ..
2011-03-16 09: 16: 18,668 - qpid.messaging.io.raw - DEBUG - LIRE [8de6b2c] : ..
2011-03-16 09: 16: 18668 - qpid.messaging.io.ops - DEBUG - ..
donc deux questions principales:
1) Est-il possible de permettre * journalisation pour seulement mes modules sans définir un enregistreur par module? En d'autres termes, existe-t-il un moyen de faire des «paramètres de journalisation» partagés, donc au lieu de devoir définir une section logger_ par enregistreur, est-il possible de définir les paramètres par défaut?
Quelque chose comme:
[logger_shared_settings]
loggers = logger_A,logger_B,logger_C,logger_D
level=DEBUG
2) Ou Comment puis-je filtrer l'enregistrement du paquet QPID via un fichier de configuration?
Voici le fichier log.conf:
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('out.log',)
Voici était ce que je voulais éviter:
[loggers]
keys=root, a, b, c, d
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=ERROR
handlers=nullHandler
[logger_a]
level=DEBUG
handlers=consoleHandler,fileHandler
[logger_b]
level=DEBUG
handlers=consoleHandler,fileHandler
[logger_c]
level=DEBUG
handlers=consoleHandler,fileHandler
Cela fonctionne, connaissez-vous un moyen de faire un ensemble partagé tings? – Nix
Hmmm ... que signifie "paramètres partagés"? – oxyum
Un peu comme le root logger, mais une section différente que je pourrais appliquer les modules dans mon application. – Nix