sentry 怎么用在 asyncio 里?

2018-10-28 09:22:49 +08:00
 Ehco1996

好像 asyncio 的协程报错之后

exit context 并不会被跑出来

所以是不是 sentry 不能被集成进去?

2404 次点击
所在节点    Python
8 条回复
klesh
2018-10-28 09:32:36 +08:00
虽然看不懂你在说什么,但是 asyncio 一样可以 try catch 的。我集成过 aiohttp, 没有问题
Ehco1996
2018-10-28 09:43:17 +08:00
@klesh 不是 try catch 的问题
我就是想知道程序哪里会报错,才想把 sentry 集成进去的
so1n
2018-10-28 11:55:38 +08:00
你用的是哪个 web 框架? sentry 官方封装了一个 aio 报错客户端,很多人也移植到其他异步 web 框架
Ehco1996
2018-10-28 12:07:09 +08:00
@so1n 是自己写的小项目,不是 web 的
Trim21
2018-10-28 12:26:19 +08:00
可以手动 try catch 之后把对应的错误给 sentry 上报

from sentry_sdk import capture_exception

try:
a_potentially_failing_function()
except Exception as e:
# Alternatively the argument can be omitted
capture_exception(e)
Capturing Messages
Ehco1996
2018-10-28 12:55:54 +08:00
@Trim21 主要我是全局的 catch...
看来好像没什么好办法
Trim21
2018-10-28 13:08:05 +08:00
@Ehco1996 考虑一下用装饰器,把可能出错的函数包起来 try except 然后再 raise 出去?
so1n
2018-10-28 14:53:56 +08:00
@Ehco1996 有没有用到 http 请求呢?如果有的话,官方有封装一个异步的 sentry 请求库,可以到他们 github 看看,我之前是找 sanic 找到 sanic-sentry 看到他直接调用官方的异步库

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

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

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

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

© 2021 V2EX