有些时候,用英文在谷歌搜解决方案真的比用中文搜方便很多。

原文地址:https://stackoverflow.com/questions/60715275/fastapi-logging-to-file

解决方法:

新建一个log_config.ini,内容如下。如果不需要控制台输出的话,handler_logconsole之后的都可以删掉。

[loggers]
keys=root

[handlers]
keys=logfile,logconsole

[formatters]
keys=logformatter

[logger_root]
level=INFO
handlers=logfile, logconsole

[formatter_logformatter]
format=[%(asctime)s.%(msecs)03d] %(levelname)s [%(thread)d] - %(message)s

[handler_logfile]
class=handlers.RotatingFileHandler
level=INFO
args=('logfile.log','a')
formatter=logformatter

[handler_logconsole]
class=handlers.logging.StreamHandler
level=INFO
args=()
formatter=logformatter

运行(uvicorn run)时增加参数:log_config=log_config.ini(你的文件地址)即可。