私は自分のアプリに特定のビューを持っていHttpResponse('')
ますHttpResponseBadRequest()
。
このビューは外部データで機能するため、予期しない例外が発生する可能性があります。もちろん、私は何が起こったのかを知る必要があります。だから私はそのようなものを持っています:
def my_view(request):
try:
# a lot of code
return HttpResponse('')
except:
import logging
logger = logging.getLogger('django.request')
# logger.error(extra={'request': request}) or logger.exception()
return HttpResponseBadRequest('')
問題があれば、デフォルトのログ設定があります(django 1.5)。
logger.exception
小さなトレースバックのみを送信し、リクエスト データは送信しません。
logger.error
要求データのみを送信します。
したがって、問題は、djangoが送信するものとまったく同じトレースバックを取得する方法です(同じ件名/本文で))。私が見つけられないクリーンでシンプルな解決策があるに違いないと思います。
アップデート
したがって、パッチを適用したexception
方法で、次のコードになりました。
logger.exception('Internal Server Error: %s', request.path,
extra={'status_code': 500, 'request': request})
これにより、組み込みの django ロギングと同等の電子メール トレースバックが生成されます。