2010-09-02 53 views

回答

35

logger.handlers包含一个包含记录器所有处理程序的列表。

+6

这没有记录。使用它安全吗? – Manish 2012-04-24 19:33:06

+6

@Manish:看看代码,我会说这是安全的使用,只要你不做多线程。处理程序列表是一个受Lock保护的共享资源,该列表仅包含对处理程序的引用。如果你使用多线程,不要使用它。 – 2013-02-09 11:59:27

+1

这只包含标准处理程序,如果你自己写了什么呢?另外,将它称为列表是有误导性的,我正在寻找一个实例列表,并且没有。它只是一个类的集合。 – bartekbrak 2017-03-22 13:35:49

2

另一种方法可能是使用JSON或YAML配置文件,将其加载到字典中,然后在传递到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)