如何在使用after_request时获取状态代码?

时间:2016-02-15 13:10:04

标签: python logging flask

如何在使用 after_request 时获取状态代码(200,500,...)?

我想要的是拥有记录器(例如werkzeug)的输出类型,但是可以添加我想要的内容(用户名,...):

remote_IP,timepoint,path,status_code

1 个答案:

答案 0 :(得分:8)

在每个请求之后注册要运行的函数应该采用响应类对象并返回响应类对象(请参阅http://flask.pocoo.org/docs/0.10/api/#flask.Flask.after_request

因此,您可以从响应类对象中获取该信息,有关可用内容的详细信息,请参阅http://flask.pocoo.org/docs/0.10/api/#flask.Response

以下是一个部分示例:

import logging

#
# your other flask code here
#

@app.after_request
def log_the_status_code(response):
    status_as_string = response.status
    status_as_integer = response.status_code
    logging.warning("status as string %s" % status_as_string)
    logging.warning("status as integer %s" % status_as_integer)
    return response

作为输出,您应该在成功点击后进入控制台:

WARNING:root:status as string 200 OK
WARNING:root:status as integer 200