2010-06-19 7 views
3

Quelle est la meilleure façon d'activer/désactiver la journalisation?python - Quelle est la meilleure façon d'activer/désactiver la journalisation?

1) Modification des niveaux de journalisation,

logging.disable(logging.CRITICAL) 

2)

log = None 

et la journalisation des messages de cette façon,

if log: 
    log.info("log message") 

Afin que nous puissions éviter des constructions à cordes inutiles en cas de enregistrement désactivé ...

+2

Avez-vous essayé l'analyse comparative vos deux options? –

Répondre

11

1 est le meilleur, idéalement via un fichier de configuration ou un argument de ligne de commande (quiet)

2 va simplement encombrer votre code

Si vous voulez éviter la construction de chaîne cher (ce qui est probablement utile de 0,001 % du temps dans mon expérience), utilisez:

if logger.isEnabledFor(logging.DEBUG): 
    logger.debug("Message with %s, %s", expensive_func1(), 
             expensive_func2()) 

http://docs.python.org/library/logging.html#optimization

+3

Ceci suppose que vous avez le logger actuel ou racine dans 'logger'. Si vous utilisez simplement 'logging.debug (...)', vous devez vérifier comme suit: 'si logging.getLogger(). IsEnabledFor (logging.DEBUG): ...'. –

Questions connexes