Python日志记录:可以从文件读取dictConfig吗?

问题描述:

使用dictConfig在Python中设置日志记录的例子显示了在Python脚本中创建的字典。我想使用一个配置文件,但文档说fileConfig比dictConfig更老,性能也更差。可以通过配置文件设置dictConfig吗?Python日志记录:可以从文件读取dictConfig吗?

非常感谢。

+0

@WanderNauta:请参阅[文档的这一部分](https://docs.python.org/3/library/logging.config.html#configuration-file-format)。 *例如,您不能使用fileConfig()配置Filter对象,它使用fileConfig()提供超出简单整数级别的消息过滤。* –

由于dictConfig只是一个字典,你可以用任何你喜欢的方式来构造字典。从文件读取的一个示例是以JSON格式进行配置。然后你就可以做类似

import json 
import logging 

with open('myconfig.json') as f: 
    config_dict = json.load(f) 
    logging.config.dictConfig(config_dict) 

只要JSON文件有适当的架构。

您也可以使用其他文件格式,例如YAML,但您需要安装第三方库来解析文件。

dictConfig需要一个dict作为其参数,并不关心,你是如何得到它。您可以从文件中读取字典,计算,解码或创建任何您想要的方式,只要它具有适当的结构即可。

所以,是的,你可以,但你必须提取文件了(probabelly使用一些库)

否快译通,有标准库中没有分析器,它会采取一个文件,并吐出dictConfig兼容字典。

您必须创建自己的文件格式来填充字典。这是通常发生的事情; 特定于应用程序的配置转换为dictConfig安装程序,其中您的配置文件提供完整dictConfig频谱的子集。

+0

当然,还有JSON,就像在我的答案中一样。用户没有指定它必须是'.ini'格式的配置文件,或者任何其他特定的格式。 –