DRF 商城项目 - 日志处理
logging 模块
logging 模块是最基本的日志处理模块
缺陷
但是拥有一些很致命的缺陷
- 要求用户主动查询,
- 需要登录到服务器才可以查看日志文件
- 自带的报错外部通知也没办法判断同类取舍,
- 短时间内的高并发报错会导致大量邮件的发出
- 不具备集中 bug 管理,以及 bug 处理分配等
因此不推荐使用 logging 模块进行日志管理
常言道,别人的轮子又大又圆
sentry 安装
sentry 提供了完整的商业日志解决方案
日志涉及到敏感信息操作不推荐使用官方的解决方案最好自行搭建
小型项目则无所谓了.直接可以套用官方提供的服务
docker 方式
docker 方式要求拥有一定程度的 docker经验
卸载旧版本
docker 在 2017年进行过一次更新,如果有存在旧版则需要卸载重装
yum remove docker docker-common docker-selinux docker-engine
安装依赖包
sudo yum insatll -y yum-utils device-mapper-persistent-data lvm2
添加稳定的源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
更新 yum 包
sudo yum makecache fast
安装 docker
yum -y install docker-ce
启动 docker
systemctl start docker
测试 docker
docker run hello-world
docker --version
安装依赖
需要用到git,docker-compose,pip等组件
yum install epel-release
yum install -y python-pip
pip install docker-compose
yum install git
安装 sentry
通过镜像安装
git clone https://github.com/getsentry/onpremise.git
点击 这里
创建卷
docker volume create --name=sentry-data && docker volume create --name=sentry-postgres
创建环境配置文件
cd onpremise
cp -n .env.example .env
构建docker服务并打上tag
docker-compose build
生成密钥
docker-compose run --rm web config generate-secret-key
修改.env文件
将刚刚生成的秘钥复制到这里
# Run `docker-compose run web config generate-secret-key`
# to get the SENTRY_SECRET_KEY value.
SENTRY_SECRET_KEY='qxc0zw(tgu_e-0s8fnopv++u@7u6vk4xortt(k20r2)i6*h36%'
创建数据库和账号
docker-compose run --rm web upgrade
启动并设置后台运行
docker-compose up -d
验证运行
docker ps
访问 localhost:9000
sentry 使用
登录
安装好后通过访问 localhost:9000 可以进入 web 界面进行相关的操作, 点击红圈会允许所有的用户进行注册

创建项目
进入创建界面
通过之前创建的用户登录后进入初始界面后点击新项目

创建 DSN

简单使用
官方文档
选择 Python 方式, 打开相关的操作说明, 根据指引安装 raven 模块,然后做一个简单的测试脚本 dsn 替换为创建项目的 dsn即可进行测试

脚本代码
dsn = "" from raven import Client client = Client(dsn) try:
1 / 0
except ZeroDivisionError:
client.captureExceptions()
测试现象
运行测试脚本

可见报错信息为sentry提供的相关的指引
确实捕获到了错误日志, 以及相关的错误栈


重复报错测试
多次刷新脚本操作来模拟重复报错,只会引起数量变化而不会重复报错

bug管理测试
以及一些的bug相关的操作管理,分配负责人, bug状态修改删除等操作

忽略bug测试

排序, 筛选测试
筛选可以基于 tag, 分配人, 以及状态等进行分类

项目设置

team
项目的人员分组, django 的权限管理的部分就有 组 的概念. 并将映射在这里可供选择
电子邮件
配置系列的邮件名以及定制邮件发送前缀等
客户端安全性
配置允许发送的域名
警报
在警报中可以设置bug通知的发送邮件规则等
功能集成
bug通知不仅仅可以是发送邮件, 还可以集成到其他支持的服务比如 gitgub,gitlab 中等
DRF 商城项目 - 日志处理的更多相关文章
- DRF 商城项目 - 用户( 登录, 注册,登出,个人中心 ) 逻辑梳理
用户登录 自定义用户登录字段处理 用户的登录时通过 手机号也可以进行登录 需要重写登录验证逻辑 from django.contrib.auth.backends import ModelBacken ...
- DRF 商城项目 - 购物( 购物车, 订单, 支付 )逻辑梳理
购物车 购物车模型 购物车中的数据不应该重复. 即对相同商品的增加应该是对购买数量的处理而不是增加一条记录 因此对此进行联合唯一索引, 但是也因此存在一些问题 class ShoppingCart(m ...
- DRF 商城项目 - 用户操作(收藏, 留言, 收货地址)
个人收藏 整体逻辑类似于 个人中心 ( 个人中心的相关逻辑梳理详情 点击这里 ) 也是两个序列化组价的分流 查看收藏 ( list ) 详情指向 收藏详情 的组价 创建收藏 ( create ) ...
- django商城项目之用sentry管理日志
之前写商城项目的时候,采用的日志处理方式为在终端输出或者写入文件,这样的话,项目部署上线之后,若服务器出现错误,需要到服务器查看相关的错误日志,很不方便.后期在学习别人开源项目的时候,学习到一个开源的 ...
- Django商城项目笔记No.2项目准备工作
Django商城项目笔记No.2项目准备工作 接着上篇开始,创建好工程之后,随之而来的是怎么配置工程,这篇文章记录如何进行相关的配置 1.pycharm打开工程,进行相关的配置 通过pycharm打开 ...
- Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid
Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid 上一步获取QQ登录网址之后,测试登录之后本该跳转到这个界面 但是报错了: 新建oauth_callback.html & ...
- Django商城项目笔记No.4用户部分-注册接口-图片验证码
Django商城项目笔记No.4用户部分-注册接口-图片验证码 1.首先分析注册业务接口 1.1.分析可得,至少这么几个接口 图片验证码 短信验证码 用户名是否存在 手机号是否存在 整体注册接口 图片 ...
- 「开源」SpringCloud+vue搭建的商城项目
最近在研究SpringCloud,看到一个基于SpringCloud+vue搭建的模拟商城项目.用来辅助学习SpringCloud企业级开发还是很有帮助的.强烈推荐!! 源码地址在最后. spring ...
- day68_淘淘商城项目_01
原文:day68_淘淘商城项目_01 课程计划 第一天: 1.电商行业的背景介绍--电子商务 2.淘淘商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建--后台工程 a) 使用maven搭建 ...
随机推荐
- java中synchronized关键字分析
今天我们来分析一下java中synchronized关键字.首先来看一段java代码:(本地编译环境为mac,jdk1.8的环境) Demo.java package com.example.spri ...
- 3Linux常用命令
文件目录管理命令 1.touch touch 文件名 #创建空白文件 -a 修改读取(访问)时间atime -m 修改修改时间mtime -d 同时修改atime 和 mtime touch ...
- 在C++程序中自动加入svn版本号
原创文章,欢迎阅读,如果您想转载,请在第一行醒目注明原作者和原始链接. 为了方便追查和确认软件bug等问题,给软件或者库赋予版本号是个好办法. 最简单的版本号管理是记录编译时间: cout<&l ...
- 深度学习原理与框架-Tfrecord数据集的读取与训练(代码) 1.tf.train.batch(获取batch图片) 2.tf.image.resize_image_with_crop_or_pad(图片压缩) 3.tf.train.per_image_stand..(图片标准化) 4.tf.train.string_input_producer(字符串入队列) 5.tf.TFRecord(读
1.tf.train.batch(image, batch_size=batch_size, num_threads=1) # 获取一个batch的数据 参数说明:image表示输入图片,batch_ ...
- Nginx隐藏标识以及其版本号
1.隐藏版本号 curl Nginx服务器时,有这么一行Server: nginx,说明我用的是 Nginx 服务器,但并没有具体的版本号.由于某些 Nginx 漏洞只存在于特定的版本,隐藏版本号可以 ...
- ELK-WEB中文汉化和安全认证
1.Kibana汉化方法此项目,适用于Kibana 5.x-6.x的任意版本,汉化过程不可逆 1)Github仓库下载kibana中文汉化包,下载指令如下: git clone https://git ...
- 学JS的心路历程 - JS应用
各家电商网站都推出了各种活动和现今优惠券,当时在逛PTT时看到了有篇文章,提供代码教大家用JS的方式抢票,看了一下后发现好像很多人好奇这是怎么做的,于是就想说想一篇文章来讲解一下. 我们先来看一下折价 ...
- 爬虫 1 requests 、beautifulsoup
1.requests 1.method 提交方式:post.get.put.delete.options.head.patch 2.url 访问地址 3.params 在url中传递的参数,GET p ...
- 引用计数——深拷贝&浅拷贝
下面是用代码实现: private: char *data; size_t use_count; public: //构造函数 String_rep() { if(str == NULL) { dat ...
- Log4J2用法
一. 关于Log4J 2015年5月,Apache宣布Log4J 1.x 停止更新.最新版为1.2.17. 如今,Log4J 2.x已更新至2.7. 官方网址:http://logging.ap ...