我正在使用由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/

10-13 06:20