Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging FastAPI uvicorn未记录错误_Logging_Fastapi_Uvicorn - Fatal编程技术网

Logging FastAPI uvicorn未记录错误

Logging FastAPI uvicorn未记录错误,logging,fastapi,uvicorn,Logging,Fastapi,Uvicorn,我正在学习fastapi,并且正在本地主机上启动一个uvicorn服务器。无论何时出现错误/异常,我都不会得到回溯。 我得到的只是:INFO:127.0.0.1:56914-“POST/create/user/HTTP/1.1”500内部服务器错误 所以,调试很困难,我正在试用python的日志模块 import logging log = logging.getLogger("uvicorn") log.setLevel(logging.DEBUG) 我还尝试过使用

我正在学习fastapi,并且正在本地主机上启动一个uvicorn服务器。无论何时出现错误/异常,我都不会得到回溯。 我得到的只是:
INFO:127.0.0.1:56914-“POST/create/user/HTTP/1.1”500内部服务器错误

所以,调试很困难,我正在试用python的日志模块

 import logging
 log = logging.getLogger("uvicorn")
 log.setLevel(logging.DEBUG)
我还尝试过使用调试参数启动uvicorn

if __name__ == "__main__":
    dev = 1
    print("printing")
    if dev == 1:
        uvicorn.run('main:app', host="127.0.0.1", port=5000, log_level="info", reload=True, debug=True)
    if dev == 2:
        uvicorn.run('main:app', host="127.0.0.1", port=5000, log_level="info", workers=2)


still the same problem persists. I am in development phase and I need to error traceback,please guide. 
解决方案/修复 现在,当您通过in-Python命令
uvicorn.run(app)
执行uvicorn时,这是您的下一步:

采用ucivorn默认日志记录配置,并将应用程序中的处理程序添加到该配置中:


配置={}
#这是默认设置(站点包\uvicorn\main.py)
配置['log_config']={
“版本”:1,“禁用现有日志记录器”:True,
'格式化程序':{'default':{'()':'uvicorn.logging.DefaultFormatter','fmt':'%(levelprefix)s%(message)s','use_colors':None},
'access':{'()':'uvicorn.logging.AccessFormatter','fmt':'%(levelprefix)s%(客户端地址)s-“%(请求行)s”%(状态代码)s'},
'handlers':{'default':{'formatter':'default','class':'logging.StreamHandler','stream':'ext://sys.stderr'},
'access':{'formatter':'access','class':'logging.StreamHandler','stream':'ext://sys.stdout'}},
'记录器':{'uvicorn':{'handlers':['default'],'level':'INFO'},
'uvicorn.error':{'level':'INFO','handlers':['default'],'propagate':True},
'uvicorn.access':{'handlers':['access'],'level':'INFO','propagate':False},
},
}
#将您的处理器添加到它中(在我的例子中,我使用夸脱,但您也可以使用烧瓶等,它们都是相同的)
配置['log_config']['loggers']['quart']={'handlers':['default'],'level':'INFO'}
这将使记录器在uvicorn启动时保持启用夸脱/烧瓶/等。或者,您可以将
禁用现有的\u记录器
设置为False。但这将使所有记录器保持启用状态,然后您可能会收到比您希望的更多的消息

最后,将配置传递给uvicorn:

uvicorn.run(app, **config)
解释
当uvicorn的日志记录配置将
disable_existing_logger
设置为True时,所有其他记录器都将被禁用。这也意味着记录器夸脱和烧瓶使用(打印回溯)被禁用。您可以将配置设置为不禁用其他记录器,或者将它们重新添加到配置中,以便uvicorn不会首先禁用它们。

我正在使用它。。。我目前正在将其追溯到默认情况下登录到stderr的“uvicorn.error”记录器,但我遇到了相同的问题,但它肯定来自于一个日志配置,其中uvicorn.error发生了更改。