繁体   English   中英

如何在生产站点的Django回溯电子邮件中包含request.User详细信息

[英]How can I include the request.User details in Django's traceback email for a production site

我想在发生错误时通过电子邮件发送给站点管理员的上下文详细信息中包含request.user的内容,以及traceback和request.GET / POST / COOKIES / META

任何帮助赞赏。

因为process_exception中间件被传递了请求对象,所以您可以添加您想要请求的任何信息.META

class ErrorMiddleware(object):
    """
    Alter HttpRequest objects on Error
    """

    def process_exception(self, request, exception):
        """
        Add user details.
        """
        request.META['USER'] = request.user.username

创建一个具有process_exception方法的中间件。 http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-exception

import sys
import traceback
from django.conf import settings
from django.core.mail import mail_admins

class ProcessExceptionMiddleware(object):
    def process_exception(self, request, exception):
        if not settings.DEBUG:
            msg = '\n\n'.join([request.user, request.GET, request.POST, \
                request.COOKIES, request.META, traceback.format_exc(*sys.exc_info())])

            mail_admins("Error!", msg)

我希望能给你一些想法!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM