zoukankan      html  css  js  c++  java
  • 【Flask】在Flask中使用logger

    https://blog.csdn.net/yannanxiu/article/details/53557657

    Flask在0.3版本后就有了日志工具logger,在Flask的官方文档中这么记载:

    有时候可能会遇到数据出错需要纠正的情况。例如因为用户篡改了数据或客户端代码出错 而导致一个客户端代码向服务器发送了明显错误的 HTTP 请求。多数时候在类似情况下 返回 400 Bad Request 就没事了,但也有不会返回的时候,而代码还得继续运行 下去。

    这时候就需要使用日志来记录这些不正常的东西了。自从 Flask 0.3 后就已经为你配置好 了一个日志工具。

    app.logger.debug('A value for debugging')
    app.logger.warning('A warning occurred (%d apples)', 42)
    app.logger.error('An error occurred')
    • 1
    • 2
    • 3

    可是我用Flask开发大型项目,重新组织了Flask的文件结构。

    # app.__init__.py
    def create_app(config_name):
        app = Flask(__name__)
        app.config.from_object(config[config_name])
        config[config_name].init_app(app)
    
        # 省略...
    
        return app
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    # manage.py
    app = create_app(os.getenv('FLASK_CONFIG') or 'default')
    • 1
    • 2

    想使用app.logger,但是无论是用from manage import app还是from app import app都会出现ImportError错误,后来询问了知乎上的一位大神,他建议使用flask的current_app,即:

    from flask import current_app
    
    current_app.logger.debug('A value for debugging')
    current_app.logger.warning('A warning occurred (%d apples)', 42)
    current_app.logger.error('An error occurred')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这样就可以在蓝图的视图函数里使用logger了。

  • 相关阅读:
    个人总结
    第二次冲刺 10
    第二次冲刺 09
    第二次冲刺 08
    第二次冲刺 07
    团队冲刺第七天
    团队绩效评估
    团队冲刺第六天
    团队冲刺第五天
    团队冲刺第四天
  • 原文地址:https://www.cnblogs.com/fengff/p/9511452.html
Copyright © 2011-2022 走看看