python start方法_Python g.start方法代码示例

# 需要导入模块: from flask import g [as 别名]

# 或者: from flask.g import start [as 别名]

def init_app(app):

def start_timer():

request_id = request.headers.get("X-Request-ID", str(uuid4()))

g.logger = current_app.logger.bind(request_id=request_id)

g.request_id = request_id

g.start = datetime.now()

app.before_request(start_timer)

def log_request(response):

if request.path == "/favicon.ico":

return response

now = datetime.now()

if hasattr(g, "start"):

duration = int(round((now - g.start).microseconds / 1000, 2))

else:

duration = -1

user_ip = request.headers.get("X-Forwarded-For", request.remote_addr)

host = request.host.split(":", 1)[0]

log_params = {

"method": request.method,

"path": request.path,

"status": response.status_code,

"duration": duration,

"ip": user_ip,

"host": host,

}

request_id = getattr(g, "request_id", None)

if request_id:

log_params["request_id"] = request_id

if response.status_code < 400:

current_app.logger.info("Request succeeded", **log_params)

elif response.status_code < 500:

current_app.logger.info("Bad Request", **log_params)

else:

current_app.logger.error("Internal Server Error", **log_params)

return response

app.after_request(log_request)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值