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 商城项目 - 日志处理的更多相关文章

  1. DRF 商城项目 - 用户( 登录, 注册,登出,个人中心 ) 逻辑梳理

    用户登录 自定义用户登录字段处理 用户的登录时通过 手机号也可以进行登录 需要重写登录验证逻辑 from django.contrib.auth.backends import ModelBacken ...

  2. DRF 商城项目 - 购物( 购物车, 订单, 支付 )逻辑梳理

    购物车 购物车模型 购物车中的数据不应该重复. 即对相同商品的增加应该是对购买数量的处理而不是增加一条记录 因此对此进行联合唯一索引, 但是也因此存在一些问题 class ShoppingCart(m ...

  3. DRF 商城项目 - 用户操作(收藏, 留言, 收货地址)

    个人收藏 整体逻辑类似于 个人中心 ( 个人中心的相关逻辑梳理详情  点击这里 ) 也是两个序列化组价的分流 查看收藏  ( list ) 详情指向 收藏详情 的组价 创建收藏 ( create ) ...

  4. django商城项目之用sentry管理日志

    之前写商城项目的时候,采用的日志处理方式为在终端输出或者写入文件,这样的话,项目部署上线之后,若服务器出现错误,需要到服务器查看相关的错误日志,很不方便.后期在学习别人开源项目的时候,学习到一个开源的 ...

  5. Django商城项目笔记No.2项目准备工作

    Django商城项目笔记No.2项目准备工作 接着上篇开始,创建好工程之后,随之而来的是怎么配置工程,这篇文章记录如何进行相关的配置 1.pycharm打开工程,进行相关的配置 通过pycharm打开 ...

  6. Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid

    Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid 上一步获取QQ登录网址之后,测试登录之后本该跳转到这个界面 但是报错了: 新建oauth_callback.html & ...

  7. Django商城项目笔记No.4用户部分-注册接口-图片验证码

    Django商城项目笔记No.4用户部分-注册接口-图片验证码 1.首先分析注册业务接口 1.1.分析可得,至少这么几个接口 图片验证码 短信验证码 用户名是否存在 手机号是否存在 整体注册接口 图片 ...

  8. 「开源」SpringCloud+vue搭建的商城项目

    最近在研究SpringCloud,看到一个基于SpringCloud+vue搭建的模拟商城项目.用来辅助学习SpringCloud企业级开发还是很有帮助的.强烈推荐!! 源码地址在最后. spring ...

  9. day68_淘淘商城项目_01

    原文:day68_淘淘商城项目_01 课程计划 第一天: 1.电商行业的背景介绍--电子商务 2.淘淘商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建--后台工程 a) 使用maven搭建 ...

随机推荐

  1. C#使用GET、POST请求获取结果,这里以一个简单的用户登陆为例。

    1. 使用GET请求获取结果 1.1 创建LoginHandler.aspx处理页面 protected void Page_Load(object sender, EventArgs e) { st ...

  2. canvas 2.0

    了解 虽然大家都称Canvas为html5的新标签,看起来好像Canvas属于html语言的新知识,但其实Canvas画图是通过javascript来做的.所以,如果你想学习Canvas画图,你必须要 ...

  3. MySQL 8.0 新增SQL语法对窗口函数和CTE的支持

    尝试了一下MySQL 8.0的部分新特性. 如果用过MSSQL或者是Oracle中的窗口函数(Oracle中叫分析函数), 然后再使用MySQL 8.0之前的时候,就知道需要在使用窗口函数处理逻辑的痛 ...

  4. Java中的包装数据类型

    基本类型 包装器类型 boolean Boolean char Character int Integer byte Byte short Short long Long float Float do ...

  5. 关于ie6块元素行内元素转换

    1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的display属性设置为inline-block时,IE6/IE7浏览器是不支持的: ...

  6. Blob分析--粘连颗粒检测 基于距离变换的分水岭区域分割 盆地与原连通域求交集

    文章转自微信公众号:机器视觉那些事 *******************************************************************公众号:机器视觉那些事儿*** ...

  7. 即时通信 选择UDP还是TCP协议

    之前做过局域网的聊天软件,现在要做运行在广域网的聊天软件.开始接触网络编程,首先是接触到TCP和UDP协议 在网上查资料,都是这样描述 TCP面向连接,可靠,数据流 .UDP无连接,不可靠,数据报.但 ...

  8. C++ 常见术语及解释

    RAII(Resource Acquisition Is Initialization) 资源获取就是初始化 RTTI(Run-time type information) 运行时类型信息 RVO(R ...

  9. php的AES加密、解密类

    <?php /** * php.ios.Android 通用的AES加密.解密方法 */ namespace Common\Business; class AESCrypt { /** * 初始 ...

  10. Eclipse Java注释模板设置

    类型(Types)注释标签(类的注释): /** * @ClassName: ${type_name} * @Description: ${todo}(这里用一句话描述这个类的作用) * @autho ...