Djangoミドルウェアのprocess_exceptionについて

Djangoの自作middlewareに「process_exception」関数を定義しておくと、viewで発生した例外(当然ハンドリングされているものは除く)をキャッチして処理することができます。

例) 例外をキャッチしてログに書き出す

import logging
import sys
import traceback
class MyMiddleware(object):
    def process_exception(self, request, exception):
        logging.error("ERROR: " + str(traceback.format_exc(exception))

もし、process_exceptionでdjango.http.HttpResponseのオブジェクトを返せば、そのページを表示することもできます。

この記事が役に立った場合、シェアしていただけると励みになります!!