6

私は自分のアプリに特定のビューを持ってい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 ロギングと同等の電子メール トレースバックが生成されます。

4

1 に答える 1