Python “如何修复”;KeyError:';日志上下文'&引用;烧瓶上
我正在为我的一台服务器使用较旧的版本(因为存在一些依赖项)。我在docker容器中安装了我的服务器,直到今天它还可以正常工作。当我重建映像并重新运行服务时,会出现以下错误:Python “如何修复”;KeyError:';日志上下文'&引用;烧瓶上,python,flask,Python,Flask,我正在为我的一台服务器使用较旧的版本(因为存在一些依赖项)。我在docker容器中安装了我的服务器,直到今天它还可以正常工作。当我重建映像并重新运行服务时,会出现以下错误: Exception on /messages [GET] Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app response =
Exception on /messages [GET]
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1379, in handle_user_exception
return handler(e)
File "/opt/sync-engine/inbox/api/ns_api.py", line 226, in handle_input_error
request.environ['log_context']['error'] = error.__class__.__name__
KeyError: 'log_context'
{"module": "inbox.api.srv:28", "level": "error", "event": "Uncaught error thrown by Flask/Werkzeug", "timestamp": "2019-03-27T10:36:55.760581Z", "greenlet_id": 140055343249040}
srv.py(inbox.api.srv):
ns_api.py:
...
@app.errorhandler(APIException)
def handle_input_error(error):
# these "errors" are normal, so we don't need to save a traceback
request.environ['log_context']['error'] = error.__class__.__name__
request.environ['log_context']['error_message'] = error.message
response = flask_jsonify(message=error.message,
type='invalid_request_error')
response.status_code = error.status_code
return response
...
主要原因是:
请求中没有log\u上下文
键。环境
要解决此问题,只需初始化log\u上下文
键
request.environ.setdefault('log_context', dict())
# etc...
request.environ['log_context']['error'] = error.__class__.__name__
希望这有帮助
request.environ.setdefault('log_context', dict())
# etc...
request.environ['log_context']['error'] = error.__class__.__name__