我在Django中使用以下格式化程序来记录警告& django.request模块中的错误:
'format': '%(levelname)s: %(message)s\n %(exc_info)s'
如果没有发生异常,则会打印None
。当格式化程序中没有异常时,是否可以跳过exc_info
?
这是日志记录调用:
logger.error('', exc_info=True)
答案 0 :(得分:1)
您无需在日志记录格式配置中明确包含%(exc_info)s
:在记录异常时,将自动添加回溯和相关内容。
引用logging module的文档:
kwargs中有两个被检查的关键字参数:exc_info,如果它没有评估为false,会将异常信息添加到日志消息。如果提供了异常元组(以sys.exc_info()返回的格式),则使用它;否则,调用sys.exc_info()以获取异常信息。
(强调我的。)
另外,请注意LogRecord attributes部分:
exc_info
|您不应该自己格式化。