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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM