【发布时间】:2018-07-16 11:06:14
【问题描述】:
我正在使用 AWS 并使用 AWS cloudwatch 查看日志。虽然事情不应该在 AWS 上中断,但它们可以。我刚遇到这样的情况。然后我搜索了Traceback,得到了这些台词
Traceback (most recent call last):
没有实际的回溯。我有一个有效的结构化日志记录设置(请参阅other question),我想以类似的方式获取回溯。
所以而不是:
Traceback (most recent call last):
File "/home/math/Desktop/test.py", line 32, in <module>
adf
NameError: name 'adf' is not defined
类似
{"message": "Traceback (most recent call last):\n File \"/home/math/Desktop/test.py\", line 32, in <module>\n adf\n NameError: name 'adf' is not defined", "lineno": 35, "pathname": "/home/math/Desktop/test.py"}
或者甚至更好地使用 JSON 格式的字符串。
我能想到的唯一方法是一个巨大的 try-except 块。口袋妖怪风格。有没有更好的解决方案?
【问题讨论】:
-
所以你不想尝试除了块,还想用格式化的方式记录错误?
-
您应该使用自定义的
logging.Formatter并实现formatException。 -
@ArpitSolanki 是的