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

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

解决方法:

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[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
[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
[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(你的文件地址)即可。