我们有一个 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 中自定义电子邮件的最佳方式是什么?