脚本宝典收集整理的这篇文章主要介绍了fastapi(66)- 修改 uvicorn 的日志格式,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
默认启动 uvicorn 之后,访问接口会有打印日志,如下
但我觉得这个日志满足不了我,我想加内容,比如时间戳,那要怎么操作捏
F7 进到内部
ctrl + 点击 Config,然后往下看有一个 log_config
ctrl + 点击 LOGGIN_CONFIG
就能找到当前的 access_log 的打印格式了
"fmt": '%(asctime)s - %(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s',
将上面的格式换成这个就可以打印有时间戳的日志啦
但改源码只是临时手段,总不能部署一个环境改一次源码吧,所以要通过更灵活的方式来解决这个问题
http://www.uvicorn.org/settings/#logging
uvicorn 提供了一个参数 --log-config <path> 可以自行提供日志配置文件
从源码也能看到,可以支持 .ini .json .yaml 三种格式的日志配置文件
具体什么命名,什么格式自己决定即可
{ "version": 1, "disable_existing_loggers": false, "formatters": { "default": { "()": "uvicorn.logging.DefaultFormatter", "fmt": "%(levelprefix)s %(message)s", "use_colors": null }, "access": { "()": "uvicorn.logging.AccessFormatter", "fmt": "%(asctime)s - %(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s" } }, "handlers": { "default": { "formatter": "default", "class": "logging.StreamHandler", "stream": "ext://sys.stderr" }, "access": { "formatter": "access", "class": "logging.StreamHandler", "stream": "ext://sys.stdout" } }, "loggers": { "uvicorn": { "handlers": [ "default" ], "level": "INFO" }, "uvicorn.error": { "level": "INFO" }, "uvicorn.access": { "handlers": [ "access" ], "level": "INFO", "propagate": false } } }
if __name__ == "__main__": uvicorn.run("test:app", port=8001, debug=True, log_config="uvicorn_config.json")
uvicorn test:app --port 8001 --debug --log-config uvicorn_config.json
两种方式都能给日志添加上了时间戳啦
像上面我加了 %(asctime)s 是 logging 模块自带的格式字符串来的,类似的还有很多,具体可看
https://www.cnblogs.com/poloyy/p/15549265.html
以上是脚本宝典为你收集整理的fastapi(66)- 修改 uvicorn 的日志格式全部内容,希望文章能够帮你解决fastapi(66)- 修改 uvicorn 的日志格式所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。