Python 如何将所有警告异常(完整堆栈跟踪)记录到文件

Python 如何将所有警告异常(完整堆栈跟踪)记录到文件,python,apache,logging,flask,flask-restful,Python,Apache,Logging,Flask,Flask Restful,因此,我正在尝试使用flask构建一个restful API,由apache在centos上提供(httpd) 基本API调用工作正常,但我在更高级的方面没有取得多大进展,因为每次失败时,我都会收到HTTP 500响应,这对于故障排除完全没有用处,而且我没有服务器端日志可查看。我试图通过反复试验来解决这个问题,这让我头痛不已 为了在这个项目上取得任何进展,我需要设置一些基本的错误日志,但我不了解有关这个的文档或现有线程。这完全超出了我的理解力 我想做的是让flask将我的应用程序生成的所有警告和

因此,我正在尝试使用flask构建一个restful API,由apache在centos上提供(httpd)

基本API调用工作正常,但我在更高级的方面没有取得多大进展,因为每次失败时,我都会收到HTTP 500响应,这对于故障排除完全没有用处,而且我没有服务器端日志可查看。我试图通过反复试验来解决这个问题,这让我头痛不已

为了在这个项目上取得任何进展,我需要设置一些基本的错误日志,但我不了解有关这个的文档或现有线程。这完全超出了我的理解力

我想做的是让flask将我的应用程序生成的所有警告和异常写到一个特定的文件中(可以放在app目录中以保持简单)

我正在寻找最简单,最简单,最不易弯曲的方式来做这件事。。。建议

这是我的应用程序的一个非常简化的版本。。。它显示了我正在使用的基本结构,因此请使用它作为参考

    from flask import Flask, jsonify, request
    from flask_restful import reqparse, abort, Resource, Api

    app = Flask(__name__)
    api = Api(app)

    class fetchTicket(Resource):
        def post(self):

        request_data = request.get_json(force=True)

        r_ticket_id = request_data['ticket_id']

        return jsonify(ticket_id=r_ticket_id)


    api.add_resource(fetchTicket, '/ticket/fetch')

    if __name__ == "__main__":
        import logging
        from logging.handlers import FileHandler

        app.debug = True
        file_handler = FileHandler("/var/www/project_folder/error.log")
        file_handler.setLevel(logging.DEBUG)
        app.logger.addHandler(file_handler)
        app.run()
但是当我运行上面的代码时,没有创建error.log文件。我不确定我做错了什么


注意:我确实设置了文件夹权限,以便apache用户有权写入日志文件应该放在的目录,如所示,但没有帮助,因此我认为这不是权限问题。

您需要在日志记录时使用额外的kwarg显式包含堆栈跟踪

logger.exception('Probably something went wrong', extra={'stack': True})

,第二个链接仅与flask dev服务器相关。是否?我使用的是apache,我在原始问题中添加了一些测试代码,这些问题是根据Celeo发布的第一个链接提出的。但是我的代码没有创建日志文件,不确定我做错了什么。