5

tornado.web.Application._handle_request_exceptionメソッドをオーバーライドして、カスタムの未処理のリクエスト例外ログを実装しようとしています。

def _handle_request_exception(self, e):
    logging.error('error')  # Just for test.

しかし、次のような同じログ出力が表示されます。

2012-09-01 03:35:09,947 [7399] root ERROR: Uncaught exception GET / (127.0.0.1)
HTTPRequest(...)
Traceback (most recent call last):

私のカスタムメッセージの代わりに。私は何が間違っているのですか?

4

1 に答える 1

7

さて、まず第一に、_handle_request_exceptionメソッドはでRequestHandlerはなく、にありApplicationます。

次に、メインの名前空間でバインドされたメソッドを新しい定義でオーバーライドすることはできません。

def _handle_request_exception(self, e):
    logging.error('error')

RequestHandlerクラスをサブクラス化する必要があります。

class BaseHandler(tornado.web.RequestHandler):
    def _handle_request_exception(self, e):
        logging.error('error')

その後、すべてのハンドラーはから継承する必要がありますBaseHandler

于 2012-09-01T21:47:29.683 に答える