|
@@ -7,7 +7,6 @@ from django.core import mail
|
|
|
from django.core.mail import get_connection
|
|
|
from django.core.management.color import color_style
|
|
|
from django.utils.module_loading import import_string
|
|
|
-from django.views.debug import ExceptionReporter
|
|
|
|
|
|
request_logger = logging.getLogger('django.request')
|
|
|
|
|
@@ -83,10 +82,11 @@ class AdminEmailHandler(logging.Handler):
|
|
|
request data will be provided in the email report.
|
|
|
"""
|
|
|
|
|
|
- def __init__(self, include_html=False, email_backend=None):
|
|
|
+ def __init__(self, include_html=False, email_backend=None, reporter_class=None):
|
|
|
super().__init__()
|
|
|
self.include_html = include_html
|
|
|
self.email_backend = email_backend
|
|
|
+ self.reporter_class = import_string(reporter_class or 'django.views.debug.ExceptionReporter')
|
|
|
|
|
|
def emit(self, record):
|
|
|
try:
|
|
@@ -116,7 +116,7 @@ class AdminEmailHandler(logging.Handler):
|
|
|
else:
|
|
|
exc_info = (None, record.getMessage(), None)
|
|
|
|
|
|
- reporter = ExceptionReporter(request, is_email=True, *exc_info)
|
|
|
+ reporter = self.reporter_class(request, is_email=True, *exc_info)
|
|
|
message = "%s\n\n%s" % (self.format(no_exc_record), reporter.get_traceback_text())
|
|
|
html_message = reporter.get_traceback_html() if self.include_html else None
|
|
|
self.send_mail(subject, message, fail_silently=True, html_message=html_message)
|