我正在使用connexion和Swagger在Python中创建API。我想把所有的来电都记录到一个文件中,这样我就可以看到请求的内容了。我已经能够记录我收到的电话的路径,但我不知道如何记录身体。
下面是我配置日志的地方:
if __name__ == '__main__':
import logging
logging.basicConfig(format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s', filename='golden_record.log',level=logging.DEBUG)当我查看日志时,我看到了路径,如下所示.
2019-03-23 12:47:16,182 - INFO - 127.0.0.1 - 23/Mar/2019 12:47:16 "POST /golden_record/account HTTP/1.1“400 -
但我没有看到呼叫的主体(即我发送的数据)。是否有一种方法可以自动记录每一次来电?这样做将有助于调试不按预期工作的调用。谢谢!
发布于 2019-04-07 21:45:04
只需添加一个酒瓶before_request。Connexion实例将Flask实例存储为app属性,因此您可以使用app.app进行访问。
添加代码,您将记录主体:
@app.app.before_request
def log_request_info():
print('Body: %s', request.get_data())将print方法更改为记录器:
@app.app.before_request
def log_request_info():
logger.info('Body: %s', request.get_data())request导入是:
from flask import request
app是您的Connexion实例:
app = connexion.App(__name__, specification_dir="./swagger/")
我用代码创建了一个Gist。https://gist.github.com/kevinmmartins/f832c21215bb51cea73b8fdd28f6d88d
https://stackoverflow.com/questions/55316205
复制相似问题