Python日志记录:可以从文件读取dictConfig吗?
使用dictConfig在Python中设置日志记录的例子显示了在Python脚本中创建的字典。我想使用一个配置文件,但文档说fileConfig比dictConfig更老,性能也更差。可以通过配置文件设置dictConfig吗?Python日志记录:可以从文件读取dictConfig吗?
非常感谢。
由于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频谱的子集。
当然,还有JSON,就像在我的答案中一样。用户没有指定它必须是'.ini'格式的配置文件,或者任何其他特定的格式。 –
@WanderNauta:请参阅[文档的这一部分](https://docs.python.org/3/library/logging.config.html#configuration-file-format)。 *例如,您不能使用fileConfig()配置Filter对象,它使用fileConfig()提供超出简单整数级别的消息过滤。* –