sentry是个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。
flask集成sentry分为4个步骤:
- 首先在sentry官网注册1个账号, Sentry官网地址
- 然后创建1个新的项目,这里我选择的是flask,这会得到一些关于sdk的使用说明
- 接下来创建一个简单的flask项目使用sdk测试一下
- 实时在sentry的dashboard的project页面上看到提交过来的异常信息
在flask项目中配置使用sentry,步骤如下:
1、通过pip 安装sentry-sdk
代码语言:javascript复制pip install --upgrade sentry-sdk[flask]==0.7.3
2、flask初始化app的文件中执行,dsn值直接复制 sentry给出的sdk使用说明中的值就可以
代码语言:javascript复制import sentry_sdk
from sentry_sdk.integrations.flask import FlaskIntegration
sentry_sdk.init(
dsn="https://70das632c203455ea1ec6b45f9acd844e@sentry.io/1302806",
integrations=[FlaskIntegration()],
#environment="dev",
#send_default_pii=True
)
app = Flask(__name__)
简单配置就实现了错误监控,程序发送错误会发送邮件到配置的邮箱
3、测试报错情况:
代码语言:javascript复制@app.reoute('debug-sentry')
def trigger_error():
division_by_zero=1/0
1/0会引发ZeroDivisionError错误
代码语言:javascript复制Traceback (most recent call last):
File "<input>", line 1, in <module>
ZeroDivisionError: division by zero
在sentry查看一下效果:
果然很强大,连出错的代码都可以显示出来
行为
- Flask集成将安装在您的所有应用程序中。它挂钩到Flask的信号,而不是app对象上的任何信号。
- 每个事件都附有一些数据: 1.除非将send_default_pii设置为true,否则将排除个人可识别信息(例如用户ID,用户名,cookie,授权标头,IP地址)。 2.请求数据附加到所有事件。 3.如果已安装并配置了Flask-Login,则会将用户数据附加到事件。
- 报告导致内部服务器错误的所有异常。
- 使用app.logger或任何记录器进行日志记录将在启用日志记录集成时创建面包屑(默认情况下已完成)。
参考:https://blog.csdn.net/ying_ge_/article/details/87937820 https://blog.csdn.net/lcli2009/article/details/83213190 https://www.cnblogs.com/kaerxifa/p/11711841.html