5分钟教你学会Django系统错误监控

一、监控所有的request请求

如何实现系统监控,自动发送错误日志的邮件呢?

只需配置配置settings文件即可。

1.设置发送邮件配置信息

邮件会发送到ADMINS设定的邮件列表中。

SERVER_EMAIL =‘[email protected]‘

DEFAULT_FROM_EMAIL =‘[email protected]‘

ADMINS = ((‘receiver‘,‘[email protected]‘),)

EMAIL_HOST =‘smtp.exmail.qq.com‘

EMAIL_HOST_USER =‘[email protected]‘

EMAIL_HOST_PASSWORD =‘123456‘

EMAIL_BACKEND =‘django.core.mail.backends.smtp.EmailBackend‘

2.配置LOGGING

1)配置mail_admin的handler

level为日志级别

django.utils.log.AdminEmailHandler为django处理系统日志发送邮件的handler

在没有配置filter参数情况下,默认发送系统5XX状态的错误日志

‘handlers‘: {

    ‘mail_admin‘: {

    ‘level‘:‘ERROR‘,

    ‘class‘:‘django.utils.log.AdminEmailHandler‘,

    ‘include_html‘:False,

    }

}

2)配置django.request模块的logger
将django的request模块配置如上的mail_admin handler

‘loggers‘: {

    ‘django.request‘: {

    ‘handlers‘: [‘default‘,‘mail_admin‘],

    ‘propagate‘:True,

    ‘level‘:‘ERROR‘,

    },

}

  在这里还是要推荐下我自己建的Python开发学习群:725479218,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴

二、监控非request请求

如何监控例如系统的定时任务等非用户发起的功能模块,我们可以自定义一个decorator来解决这个问题。

utils.send_exception_email(email_list,title,exc)为发送邮件的方法,可以自己实现,非常简单

def decorator_error_monitor(title):

    def wrap(f):

        def wrapped_f(*args,**kwargs):

            try:

                result = f(*args,**kwargs)

                return result

           except:

               exc = traceback.format_exc()

               utils.send_exception_email(email_list,title,exc)

               raise Exception(exc)

            return wrapped_f

        return wrap

对需要监控的方法使用decorator

@decorator_error_monitor("清算错误")

def do_settlement(users):

    for user in users:

        process_settlement_for_one_user(user)

效果如下

以上监控方法,简单实用,无需开发额外的日志监控系统,可以在第一时间发现系统的问题,并得知系统的错误日志,帮助快速的定位问题。

原文地址:http://blog.51cto.com/13786054/2130760

时间: 2024-07-29 23:50:40

5分钟教你学会Django系统错误监控的相关文章

Python黑科技,教你学会Django系统错误监控

来源:http://www.jianshu.com/p/42e4287ffeda 话不多说,直入正题. 先上图,看一下监控的效果. 如下是监控我们网站系统错误的邮件.包含了请求的url地址,以及详细的异常信息. 一.监控所有的request请求 如何实现系统监控,自动发送错误日志的邮件呢?只需配置配置settings文件即可. 1.设置发送邮件配置信息 邮件会发送到ADMINS设定的邮件列表中. SERVER_EMAIL ='[email protected]' DEFAULT_FROM_EMA

5分钟教你学会JavaScript正则表达式

正则表达式在实际开发过程中和技术面试过程中的重要性不言而喻,本文仅仅只是教你如何在几分钟之类学会正则表达式,对于它的原理及运行机制不做介绍. 第一:什么是正则 正则表达式是一种用来描述一定数量文本的模式,用来匹配相同规范样式的文本.在JavaScript中用RegExp对象表示正则表达式( 即Regular Eexpression),它是对字符串执行模式匹配的强大工具.我们可以参看W3C所给的说明. 第二:创建一个正则表达式 在JavaScript中创建正则表达式,有2种方式,隐式和显式创建. 

20分钟教你学会熟练使用ansible

运维自动化之ansible的安装与使用 随着服务器数量的增长,我们需要一个批量工具去提高工作效率,之前用的是puppet,ansible的简单,适用让我眼前一亮,决定写一篇ansible从安装到基本配置的文档供新手参阅. 一.安装1.安装第三方epel源centos 6的epel    [[email protected] ~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm    [

5分钟教你学会Java properties

以前年轻的时候,总喜欢在代码中把参数的值写死,改一遍跑一遍,可移植性太糟糕了.自从用了Properties类之后,省事了,代码也规范了一点了.也就是将常用的,且经常需要修改的参数放置在xx.properties文件中,利用Java中提供的Properties类读取文件中的参数值,从而避免多次在代码中修改参数的值,一劳永逸. Properties其实是继承自HashTable,所以用起来也很简单,提供的操作主要有: load(inputStream) : 加载配置文件 store(outputSt

1分钟教你学会如何使用远程桌面命令?

1.打开电脑,按下Win+R键打开运行命令; 2.输入远程连接命令,mstsc,这样就可以快速连接 3.输入正确的用户名和密码,连接远程服务器 4.下图是本地显示远程桌面的连接窗口 5.连接不成功的原因: 服务器用户名密码错误,服务器用户名密码都有大小写,重新输入一次即可 6.连接不成功的原因: 服务器过期,由于服务器大部分都是租用的,一般都会到时间要续费的 7.连接不成功的原因: 服务器重新装了系统,服务器重装系统后,远程登录密码大部分会改变,因此也会造成连接不成功 8.其它原因: 服务器受到

十分钟教你学会zookeeper安装和集群搭建(伪集群 )

1. zookeeper介绍 ZooKeeper是一个为分布式应用所设计的分布的.开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务.ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性. ZooKeeper是作为分布式协调服务,是不

几分钟教你做个原创视频,赚钱引流两不误

现在原创视频不可谓不火.未来几年,短视频创业.营销.引流.都蕴藏着巨大的市场机会.分享一些小套路.赚钱,引流必备小技巧. 举牌照大家都见过,前段时间非洲儿童的举牌照可谓火了一把,有些人靠这个赚的盆钵满盈. 但有些明星.美女的举牌照,虽然大家都见过,一般微商用的比较多,不知道的以为是某某大品牌微商代理真的把人请过来做广告. 这种图片微商.广告.成交文案.装逼等各个领域都可以用的到. 制作方法: 网上有许多的PSD源码模板,大家去下载即可,也可以到某宝去购买.然后用Photoshop软件直接修改文字

本文来自作者?余博伦?在?GiCa?上分享 「韭菜种四招教你学会甄别

Docker默认空间大小分为两个,一个是池空间大小,另一个是容器空间大小.池空间大小默认为:100G容器空间大小默认为是:10G所以修改空间大小也分为两个:这 如今已经大获市场成功的<王者荣耀>一直是业内各方关注的对象,而我们也知道这款产品在成为国民级游戏之 如果你有了还要创建密码,gi会提示你是否需要覆盖(y n)?Y:确认????????N:取消 如图:生成如上图所示标识生成成功了.其存放路径为 在我理解,面向对象是向现实世界模型的自然延伸,这是一种"万物皆对象"的编程

一分钟教你如何使用CAD看图更改图纸格式?

一分钟教你如何使用CAD看图更改图纸格式?相信在之前大家都已经学会了如何使用CAD转换器来将CAD图纸进行两种格式转换的方法了,所以今天小编给大家讲解的是如何使用CAD看图软件来进行CAD图纸两种格式的相互转换的全部操作,希望大家能够进行采纳,具体操作步骤如下! 第一步:首先要打开您电脑上面的CAD看图软件,如果您电脑上没有一款看图软件的话,您可以去到官网上面下载,小编用的就是"迅捷CAD看图",需要的可以去到下载就和小编使用一样的看图软件了!第二步:将软件下载好之后将软件安装到您电脑