【问题标题】:How do I log exceptions into a file?如何将异常记录到文件中?
【发布时间】:2021-06-08 10:27:15
【问题描述】:

我的一条生产路线遇到了困难。我正在尝试诊断错误 使用logging 模块:

初始化.py:

from flask import Flask
from logging import FileHandler, DEBUG
...

def create_app(script_info=None):
    app = Flask(__name__, template_folder='', static_folder='')
    file_handler = FileHandler('./errorlog.txt')
    file_handler.setLevel(DEBUG)
    app.logger.addHandler(file_handler)
    ...
    ...
    
    return app

蓝图路线:

from flask import current_app
from datetime import datetime
...
...

@blog_blueprint.route('/contact', methods=['POST'])
@cross_origin()
def contact():
    ...
    ...
        requests.post('https://api.sendpulse.com/smtp/emails', data=json.dumps(data))
            response_obj['status'] = 'success'
            response_obj['message'] = 'message sent'
            return jsonify(response_obj), 200
        except Exception as e:
            current_app.logger.debug(f'{datetime.now()}: '+str(e))
            return jsonify(response_obj), 400
    else:
        current_app.logger.debug(f'{datetime.now()}, name: '+name)
        current_app.logger.debug(f'{datetime.now()}, email: '+email)
        current_app.logger.debug(f'{datetime.now()}, subject: '+subject)
        response_obj['message'] = 'unrecognized email provider'
        return jsonify(response_obj), 400

errorlog.txt 文件已创建,但在测试路由后为空。任何反馈都是 非常感谢。

【问题讨论】:

    标签: python-3.x flask logging


    【解决方案1】:

    可能默认的日志记录级别高于 DEBUG。 如果你这样做,它是否有效:current_app.logger.warning("test")

    然后尝试像这样设置调试级别:

    current_app.logger.setLevel(logging.DEBUG)
    

    请注意,它是在记录器而不是处理程序上完成的。

    【讨论】:

      猜你喜欢
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 2018-01-14
      • 2013-10-17
      • 2012-10-06
      相关资源
      最近更新 更多