0

我们有一个 Web 应用程序,它会发送有关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 中自定义电子邮件的最佳方式是什么?

4

1 回答 1

1

If tracebacks via email are not a requirement, a better way to manage a high volume of tracebacks might be Django Sentry.

于 2012-01-31T04:38:08.360 回答