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了。