如何使用fileConfig()函数删除/检查/修改为我的记录器配置的处理程序?日志删除/检查/修改由fileConfig()配置的处理程序
为了消除Logger.removeHandler(hdlr)方法,但是如果从文件配置它,第一次如何获取处理程序?
如何使用fileConfig()函数删除/检查/修改为我的记录器配置的处理程序?日志删除/检查/修改由fileConfig()配置的处理程序
为了消除Logger.removeHandler(hdlr)方法,但是如果从文件配置它,第一次如何获取处理程序?
logger.handlers
包含一个包含记录器所有处理程序的列表。
另一种方法可能是使用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)
这没有记录。使用它安全吗? – Manish 2012-04-24 19:33:06
@Manish:看看代码,我会说这是安全的使用,只要你不做多线程。处理程序列表是一个受Lock保护的共享资源,该列表仅包含对处理程序的引用。如果你使用多线程,不要使用它。 – 2013-02-09 11:59:27
这只包含标准处理程序,如果你自己写了什么呢?另外,将它称为列表是有误导性的,我正在寻找一个实例列表,并且没有。它只是一个类的集合。 – bartekbrak 2017-03-22 13:35:49