カスタムロガーを使用してボトルRESTサービスから出力をログに記録しようとしています。問題は、ボトルエラーページのHTTPレスポンスコードがデフォルトで200であるため、response.status
にあるので、ロガーは常に200 OK
と記録します。ボトルは正しい応答コードを返しません。200
response.status
に設定したカスタムエラーハンドラを作成しようとしましたが、動作しません。
カスタムロガーを使用してボトルRESTサービスから出力をログに記録しようとしています。問題は、ボトルエラーページのHTTPレスポンスコードがデフォルトで200であるため、response.status
にあるので、ロガーは常に200 OK
と記録します。ボトルは正しい応答コードを返しません。200
response.status
に設定したカスタムエラーハンドラを作成しようとしましたが、動作しません。
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を参照してください。
問題を理解できません。それを示す最小限の作業用コードスニペットを提供していただければ、幸いです。 –