Python记录器不打印'额外'字典信息

时间:2016-06-17 17:14:57

标签: 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:

1 个答案:

答案 0 :(得分:3)

根据logging docsextra关键字参数用于向日志记录添加其他上下文。

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

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

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

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

所以,而不是:

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

尝试:

format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s - %(test)s'
  • 您可以找到其他一些有用的信息here