我正在使用由Waitress提供的Python和Flask来托管POST
API。我正在从发布数据并获得字符串响应的C#程序中调用API。至少有95%的时间可以正常工作,但有时C#程序会报告错误:
(500) Internal Server Error
。
没有关于错误或错误发生原因的进一步描述。唯一的线索是它通常在群集中发生-当错误发生一次时,它很可能连续发生多次。在没有任何干预的情况下,它可以恢复正常运行。
由于错误非常罕见,因此很难进行故障排除。关于如何调试或获取更多信息的任何想法?我可以从C#端或Flask/Waitress端进行错误处理吗?
最佳答案
Flask支持registering error handlers。定义错误处理程序可以自定义服务器错误日志,以及将更有意义的信息返回给客户端。
例子
import logging
import traceback
from flask import Flask, jsonify
from werkzeug.exceptions import HTTPException
app = Flask(__name__)
logger = logging.getLogger()
@app.errorhandler(HTTPException)
def handle_http_exception(error):
error_dict = {
'code': error.code,
'description': error.description,
'stack_trace': traceback.format_exc()
}
log_msg = f"HTTPException {error_dict.code}, Description: {error_dict.description}, Stack trace: {error_dict.stack_trace}"
logger.log(msg=log_msg)
response = jsonify(error_dict)
response.status_code = error.code
return response
关于c# - 如何在Python Waitress服务器上调试(500)Internal Server Error?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58049827/