Python 记录器未打印出 'extra' 字典信息

标签 python dictionary logging

<分区>

例如,在我的 python 代码中,我将字典传递给记录器。

extra_info = {"test":"data"}
logger.info("",extra=extra_info)    

我希望得到额外的信息来打印,我认为它在消息中但是当我使用这种格式时

format=%(asctime)s %(levelname)s %(name)s: %(message)s

没有打印 extra_info 内容。我只是得到以下内容

2016/06/17 13:10:47 INFO test:

最佳答案

根据logging docs , extra 关键字参数用于向日志记录添加额外的上下文。

您可以通过添加 dict 键在格式化程序中使用通过 extra 参数传递的信息:

format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s - %(EXTRA_DICT_KEY)s'

请注意,如果您像这样设置格式化程序并忘记传递字典键,您将得到一个字符串格式化异常。


正如您在示例中看到的,您没有在格式化程序中指定任何键。

所以,而不是:

format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s'

尝试:

format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s - %(test)s'

  • 您可能会找到一些其他有用的信息 here .

关于Python 记录器未打印出 'extra' 字典信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37886978/

相关文章:

python - LightGBM多分类预测结果

python - 一些具有相同选择源的 Django ChoiceFields

.Net core字典中的Mongodb $inc运算符

scala - 多函数中的类型删除,scala

c++ - Python 和 C++ 的记录器

r - 使用 foreach 时如何记录(打印或 futile.logger)

java - Android套接字客户端未从服务器接收

python - 用于 Python 的亚马逊 AWS Web 框架

dictionary - Go 实现是否存储 map 的长度?

java - 具有 logback 条件的多个根记录器