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. 源码的excel导入导出

    获取所有数据,将数据进行有序切割,在进行遍历,将其导出. //设置header header("content-type:text/html;charset=utf-8"); // ...

  2. JUC详解

    一.Java多线程 -- JUC包源码分析1 -- CAS/乐观锁 乐观锁其实就是不加锁,用CAS + 循环重试,实现多个线程/多个客户端,并发修改数据的问题 使用AtomicStampedRefer ...

  3. 【原】The Linux Command Line - Manipulation Files And Directories

    cp - Copy Files and directories mv - move/rename files and directories mkdir - create directories rm ...

  4. FTRL的理解

    https://blog.csdn.net/ningyanggege/article/details/81133785

  5. linux 部分常用命令

    1.Linux 删除除了某个文件之外的所有文件 [root@localhost abc]# ls |grep -v 'a' |xargs rm -f 其中rm -f  !(a) 最为方便.如果保留a和 ...

  6. 2019南昌网络赛-M(二分)

    题目链接:https://nanti.jisuanke.com/t/38232 题意:给定字符串s(长度<=1e5),然后N组样例(N<=1e5),每组输入一个字符串t判断t是否为s的字串 ...

  7. C++重写(覆盖)、重载、重定义、

    总结: 重写(覆盖)override 是指派生类函数重写(覆盖)基类函数 不同的范围,分别位于基类和派生类中 函数的名字相同 参数相同 基类函数必须有virtual关键字 重载overload 成员函 ...

  8. Python自动化测试用例设计--自动化测试用例与手工测试用例区别与联系

    1. 前言 手工测试用例是针对手工测试人员,自动化测试用例是针对自动化测试框架,前者是手工测试用例人员应用手工方式进行用例解析,后者是应用脚本技术进行用例解析,两者最大的各自特点在于,前者具有较好的异 ...

  9. PEiD中识别虚拟地址和物理地址

    可通过PEiD中的信息计算文件偏移地址,从而修改PE文件的关键内容,达到破解目的. 文件偏移地址=相对虚拟地址-节偏移. PEiD中有: 节偏移=虚拟地址VOffset-物理地址ROffset.  

  10. python note 05 字典及其操作

    1. '''#数据类型划分:可变数据类型,不可变数据类型不可变数据类型:元组,bool int str 可哈希可变数据类型:list,dict set 不可哈希dict key 必须是不可变数据类型, ...