Python 日志输出异常的正确姿势?

2022-06-21 11:30:47 +08:00
 Richard14

项目里为了程序在服务器上长期运行不会中断,在所有可能出异常的位置加了 try / except Exception as e ,但是有时候需要根据日志调试错误的时候,捕捉了 e 但是不太好在日志里查看,因为不能直接 raise ,这样的话程序就中断了,但是如果打印 e 的话又不包含整个错误的产生链,经常搞不清状况

4173 次点击
所在节点    Python
23 条回复
ruanimal
2022-06-21 22:12:39 +08:00
@caqiko

一般情况如果内层只为打个日志然后无条件 raise 的话,其实根本就不应该捕获。
内层应该只捕获当前函数可以处理的异常。
louiswong2099
2022-06-22 10:43:11 +08:00
sentry_sdk 这个也挺好用的,不知道适不适合你,可以捕获日志,还可以传到服务器慢慢看,分类都有,使用很简单:
https://docs.sentry.io/platforms/python/usage/
Macv1994
2022-06-25 14:04:40 +08:00
traceback 可以打印详细异常,写个异常捕捉的装饰器,要捕捉的地方加个装饰器就行了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861072

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX