2010-09-02 2 views

Répondre

35

logger.handlers contient une liste de tous les gestionnaires d'un enregistreur.

+6

Ceci n'est pas documenté. Est-il sécuritaire de l'utiliser? – Manish

+6

@Manish: En regardant le code, je dirais qu'il est sûr à utiliser, tant que vous ne faites pas le multithreading. La liste du gestionnaire est une ressource partagée protégée par un verrou et la liste contient uniquement des références aux gestionnaires. Ne l'utilisez pas, si vous faites du multithreading. –

+1

Cela ne contient que des gestionnaires standard, et si vous avez écrit le vôtre? Aussi, l'appeler une liste est trompeur, je cherchais une liste d'instances et il n'y en avait pas. C'est juste une collection de classes. – bartekbrak

2

Une autre approche pourrait consister à utiliser un fichier de configuration JSON ou YAML qui est chargé dans un dictionnaire que vous pouvez ensuite afficher/manipuler avant de le transmettre au fichier logger.config.

import yaml 
import logging.config 

with open (LOG_CONFIG, 'rt') as f: 
    config=yaml.safe_load(f) 
    config['handlers']['error_file_handler']['filename']='foo' 
logging.config.dictConfig(config) 
Questions connexes