前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[738]Flask集成sentry实现错误监控

[738]Flask集成sentry实现错误监控

作者头像
周小董
发布2020-01-13 17:43:04
1.6K0
发布2020-01-13 17:43:04
举报
文章被收录于专栏:python前行者python前行者

sentry是个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。

flask集成sentry分为4个步骤:

  1. 首先在sentry官网注册1个账号, Sentry官网地址
  2. 然后创建1个新的项目,这里我选择的是flask,这会得到一些关于sdk的使用说明
  3. 接下来创建一个简单的flask项目使用sdk测试一下
  4. 实时在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查看一下效果:

image
image

果然很强大,连出错的代码都可以显示出来

image
image
行为
  • 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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 行为
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档