equal
deleted
inserted
replaced
|
1 from django.conf import settings |
|
2 from django.core.mail import mail_admins |
|
3 import sys |
|
4 |
|
5 def _get_traceback(exc_info): |
|
6 import traceback |
|
7 return '\n'.join(traceback.format_exception(*(exc_info or sys.exc_info()))) |
|
8 |
|
9 def error_mail_admins(subject='Error', request=None): |
|
10 if request: |
|
11 subject = 'Error (%s IP): %s' % ((request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS and 'internal' or 'EXTERNAL'), request.path) |
|
12 |
|
13 try: |
|
14 request_repr = repr(request) |
|
15 except: |
|
16 request_repr = "Request repr() unavailable" |
|
17 |
|
18 exc_info = sys.exc_info() |
|
19 message = "%s\n\n%s" % (_get_traceback(exc_info), request_repr) |
|
20 |
|
21 mail_admins(subject, message, fail_silently=True) |