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

来源:http://www.jianshu.com/p/42e4287ffeda

话不多说,直入正题。

先上图,看一下监控的效果。

如下是监控我们网站系统错误的邮件。包含了请求的url地址,以及详细的异常信息。

一、监控所有的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‘,
    },
}

二、监控非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)

监控效果如下图所示:

小结

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

原文地址:https://www.cnblogs.com/l520/p/10259969.html

时间: 2024-10-07 07:58:21

Python黑科技,教你学会Django系统错误监控的相关文章

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' EMA

Python黑科技:50行代码运用Python+OpenCV实现人脸追踪+详细教程+快速入门+图像识

嗨,我最亲爱的伙计们,很高兴我们又见面了. 首先先感谢朋友们的关注.当然我更希望认识与计算机相关的领域的朋友咱们一起探讨交流.重点说一下,我是真人,不是那些扒文章的自媒体组织,大家可以相互交流的! 本篇文章我们来讲一下关于AI相关的人脸追踪,人脸识别相关的一些知识.当然本篇教程为(上)部分,讲一下利用python+opencv来实现人脸识别与追踪,明后天出(下)部分,用python来通过指纹对比实现人脸验证.人脸解锁(大家感兴趣的可以提前关注哦). 这两节课呢,代码量都不是很多,鄙人尽量多注释点

python黑科技:还在为没有wifi而烦心吗?这篇文章解决你的困扰

python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于解决问题而不是去搞明白语言本身.Python虽然是基于C语言编写,但是摒弃了C中复杂的指针,使其变得简明易学.并且作为开源软件,Python允许对代码进行阅读,拷贝甚至改进.这些性能成就了Python的高效率,有"人生苦短,我用Python"之说,是一种十分精彩又强大的语言. 在最近的公司项目开发中接触到python语言及wifi相关的一些知识,正好将最近学

Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. *注意:全文代码可左右滑动查看 准备工作 本程序主要是实现远程管理 Windows10操作系统的开机和关机: 在 Windows机器的相同内网中放一个 Linux 主机,我这里用树莓派代替,如果你是用 OpenWrt 之类的路由器也可以. Linux 主机需要能够远程访问,我这里是有 FRP 将树莓派的端口映射到我的公网 Linux 主机上.所以可以随时远程 SS

Python黑科技程序,还你一块纯洁无暇的移动硬盘

前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 星安果 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 目 标 场 景 用过 Mac OS 的朋友应该都遇到过,日常的文件操作会在同级目录下产生一些特定的临时文件. 平常将文件夹打包成压缩包或拷贝文件夹到移动

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

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

【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

[导读]TensorFlow 在 2015 年年底一出现就受到了极大的关注,经过一年多的发展,已经成为了在机器学习.深度学习项目中最受欢迎的框架之一.自发布以来,TensorFlow 不断在完善并增加新功能,直到在这次大会上发布了稳定版本的 TensorFlow V1.0.这次是谷歌第一次举办的TensorFlow开发者和爱好者大会,我们从主题演讲.有趣应用.技术生态.移动端和嵌入式应用多方面总结这次大会上的Submit,希望能对TensorFlow开发者有所帮助. TensorFlow:面向大

Python 黑帽子:黑客与渗透测试编程之道——互动出版网

这篇是计算机类的优质预售推荐>>>><Python 黑帽子:黑客与渗透测试编程之道> 安全畅销书<Python灰帽子>同作者姊妹篇 知道创宇余弦.腾讯胡珀及Keen.蓝莲花等知名黑客战队联合作序盛赞 编辑推荐 本书适合有一定编程基础的安全爱好者.计算机从业人员阅读,特别是对正在学习计算机安全专业,立志从事计算机安全行业,成为渗透测试人员的人来说,这本书更是不可多得的参考. 内容简介 <Python 黑帽子:黑客与渗透测试编程之道>是畅销书<

qt的应用层主要是大型3d,vr,管理软件和器械嵌入软件(有上千个下一代软件黑科技项目是qt的,美国宇航局,欧洲宇航局,超级战舰DDG1000)

作者:Nebula.Trek链接:https://www.zhihu.com/question/24316868/answer/118944490来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. qt的应用层主要是大型3d,vr,管理软件和器械嵌入软件.日常生活中所用的qt产品比较少.也就virtual box,google earth,VLC player等.但是大型系统就正好相反,这是c++决定的,而非qt. 除了Maya之外,包括Houdini,斯特拉电车的系