djangoが指定するようなサーバーエラーで電子メールを送信するWebアプリケーションがあります。ただし、メールをより適切に管理できるように、各メールにハッシュを添付する必要があります。
残念ながら、これらの電子メールの再フォーマットについて説明しているドキュメントの大部分はバージョン 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でメールをカスタマイズする最良の方法は何ですか?