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

news/2024/11/6 6:09:46

一、监控所有的request请求

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

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

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

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

SERVER_EMAIL ='sender@qq.com'

DEFAULT_FROM_EMAIL ='sender@qq.com'

ADMINS = (('receiver','receiver@qq.com'),)

EMAIL_HOST ='smtp.exmail.qq.com'

EMAIL_HOST_USER ='sender@qq.com'

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://www.niftyadmin.cn/n/2748064.html

相关文章

mysqld user mysql,输入mysqld --initialize --user=mysql --console时提示这个

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼在输入mysqld --initialize --usermysql --console时提示2020-07-06T10:08:23.740533Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see doc…

Office办公 Winrar如何批量把每个文件夹分别压缩成不同的压缩包

右击很多文件夹,添加到压缩文件,然后在文件中勾选把每个文件放到单独的压缩文件中即可

组装工具汇总(占坑用)

MaSuRCA: 混合组装工具 适用于二代和三代混合组装,也可以就只装二代数据。 官方提示:使用原始数据,不做任何的预处理,任何trimming, cleaning和error correction操作都会影响组装的结果。 这估计是软件本身会做上面这一步吧。 软件…

php 判断文章重复率,(一)、社区反垃圾化之文字重复率检测

(一)、社区反垃圾化之文字重复率检测序言:随着用户量的增长和内容化过渡化增长,总会有一些不坏好意的人在你的产品或者应用中留下一些垃圾,这些垃圾并不是传统意义的垃圾,而是指互联网上的垃圾文本、垃圾邮件、垃圾图片、垃圾媒体信息等,这些东西就像漂浮在水中的垃圾一样,一步…

Node.js制作图片下载爬虫的一般步骤

图片下载爬虫分两部分:爬页面和下载图片。 爬页面时先看网址是https还是http的,然后选择不同的内置对象; 其次看编码,如果是charsetgb2312的网页就需要iconv帮忙转码,好在大部分都是utf8了这步多数可以省却&#xff0c…

java randomDate,java-的类--Date、Calendar、Random

首先 Date类的构造方法Date nowdate new Date();Date afterdate new Date(1411122441L);方法、判断是否是成立System.out.println(nowdate.after(afterdate));System.out.println(nowdate.before(afterdate));克隆Date thirddate new Date();Date thirdDate (Date) afterda…

喜报销发布V2.6.1,领导审批可选择“加签”人,已审批单据可“作废”

企业商旅报销与费用管控SaaS平台“喜报销”V2.6.1版本发布。在本次新版本中,喜报销除新增新同事加入提醒、专项费及付款费用类别外,同时还新增了审批“加签”、已审批单据“作废”等功能,且日常报销、专项费用报销及付款,也可支持…

SAP OData编程指南

OData(Open Data Protocol)协议是一个开放的工业标准,用于定义RESTFul API的设计和使用。我的文章标题前加上SAP的前缀,只是为了表明这篇文章介绍的是Jerry在SAP项目开发中使用到OData的一些心得和经验。 目前OData被广泛用于SAP Business Suite和SAP S/…