在我的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:
答案 0 :(得分:3)
根据logging docs
,extra
关键字参数用于向日志记录添加其他上下文。
您可以通过添加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'