我想处理Flask API中每个请求的登录信息。我已经在manage.py
中编写了用于处理success log
和Exception log
的脚本。
这是我的manage.py
文件:
"""Manage all command related to the micro-service."""
import traceback
from flask import request
from app import app, manager
@app.after_request
def after_request(response):
""" Logging after every request. """
# This avoids the duplication of registry in the log,
# since that 500 is already logged via @app. error handler.
request_id = request.headers.get('X-Request-ID') # event['requestContext']['requestId']
if response.status_code != 500:
app.logger.info(
"%s [%s] %s %s",
request.remote_addr,
datetime.utcnow().strftime("%d/%b/%Y:%H:%M:%S.%f")[:-3],
request.user_agent,
request_id
)
return response
@app.errorhandler(Exception)
def exceptions():
""" Logging after every Exception.
Reference url github.com/sivel/flask-lambda
"""
tb = traceback.format_exc()
request_id = request.headers.get('X-Request-ID') # event['requestContext']['requestId']
app.logger.error(
"%s [%s] %s %s %s",
request.remote_addr,
datetime.utcnow().strftime("%d/%b/%Y:%H:%M:%S.%f")[:-3],
request.user_agent,
tb,
request_id
)
return request
if __name__ == '__main__':
manager.run()
我的问题:
AWS API gateway
获得request.headers.get('X-Request-ID')
的请求ID吗?