2016-10-02 11 views
0

カスタムロガーを使用してボトルRESTサービスから出力をログに記録しようとしています。問題は、ボトルエラーページのHTTPレスポンスコードがデフォルトで200であるため、response.statusにあるので、ロガーは常に200 OKと記録します。ボトルは正しい応答コードを返しません。200

response.statusに設定したカスタムエラーハンドラを作成しようとしましたが、動作しません。

+0

問題を理解できません。それを示す最小限の作業用コードスニペットを提供していただければ、幸いです。 –

答えて

0

abort()関数は、HTTPエラーページを生成するためのショートカットです。それ以外

from bottle import route, abort 
@route('/restricted') 
def restricted(): 
    abort(401, "Sorry, access denied.") 

、HTTPステータスコード(およびその他の関連情報)は、それらがブラウザに送信される時点までresponseと呼ばれるオブジェクトに格納されています。 Response.status属性を直接操作するか、あらかじめ定義されたヘルパーメソッドを使用して属性を操作することができます。

HTTPステータスコードのデフォルトは200です。ほとんどのシナリオでは、Response.status属性を手動で設定する必要はありませんが、abort()ヘルパーを使用するか、HTTPResponseインスタンスに適切なステータスコードを返します。

チュートリアルのドキュメントのHTTP ERRORS AND REDIRECTSを参照してください。

関連する問題