Добавление хеша к сгенерированным сообщениям об ошибках на Django - PullRequest
0 голосов
/ 30 января 2012

У нас есть веб-приложение, которое отправляет электронные письма об ошибках сервера, например, django указывает .Однако нам необходимо прикрепить хэш к каждому письму, чтобы мы могли лучше управлять им.

К сожалению, большая часть документации, в которой обсуждается переформатирование этих писем, относится к версии 1.3.Мы используем 1.2.7 и не можем обновить.Похоже, это означает, что примеры dictConfig () к нам не относятся.

Я нашел этот метод исправления django:

diff --git a/django/django/core/handlers/base.py b/django/django/core/handlers/base.py
index 45f8445..1605549 100644
--- a/django/django/core/handlers/base.py
+++ b/django/django/core/handlers/base.py
@@ -1,4 +1,4 @@
-import sys 
+import sys, md5 

 from django import http
 from django.core import signals
@@ -170,7 +170,11 @@ class BaseHandler(object):
             request_repr = repr(request)
         except:
             request_repr = "Request repr() unavailable"
-        message = "%s\n\n%s" % (self._get_traceback(exc_info), request_repr)
+        tb=self._get_traceback(exc_info)
+        # generate an md5 hash from this as a fingerprint
+        hash=md5.new(tb)
+        fingerprint='fingerprint: %s' % hash.hexdigest()
+        message = "%s\n\n%s\n\n%s" % (tb, fingerprint, request_repr)
         mail_admins(subject, message, fail_silently=True)
         # If Http500 handler is not installed, re-raise last exception
         if resolver.urlconf_module is None:

К сожалению этопатч нужно повторно применять каждый раз, когда мы обновляем django.

Какой лучший способ настроить электронную почту в django 1.2?

1 Ответ

1 голос
/ 31 января 2012

Если обратные вызовы по электронной почте не требуются, лучшим способом управления большим объемом обратных трассировок может быть Django Sentry .

...