目录
捕获报错
先封装一个捕获服务器报错,进行发邮箱。里面发邮箱的我给封装了,我的博客里面有封装的教程163邮箱,参考这个链接网易邮箱发送邮件,126邮箱或163邮箱_vb2010调用126邮件发邮件-CSDN博客
import logging
from datetime import datetime
logger = logging.getLogger(__name__)
class GlobalExceptionHandlerMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
return response
def process_exception(self, request, exception):
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
error_message = "[{}] An error occurred in {}: {}".format(current_time, request.path, str(exception))
logger.exception(error_message)
# 发送邮件
# 要发送的邮箱
email = ""
uuid = error_message
# 判断是否发生异常
if exception:
get_email(email, uuid)
配置
在配置文件settings里进行配置:
在中间件里面添加一个中间件,刚封装的捕获异常的类一级一级过来。
MIDDLEWARE = [
"corsheaders.middleware.CorsMiddleware",
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# 封装好的捕获异常过来
]
在settings再加一个日志
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': 'ERROR',
'propagate': True,
},
},
}