需求
- 页面错误的处理,比如404页面,500页面
- 发送email,通知当前发生的错误
- 将发生的错误记录到本地log
页面错误的处理
页面错误的处理其实有两种,一种是基于全局的,一种是基于蓝图。我们这个项目没有用到蓝图
- 全局的就使用errorhandler(404)
- 蓝图就要使用app_errorhandler(404)
1 2 3 4 5 6 7 8 9 10 11 12 13
|
from . import app from flask import render_template
@app.errorhandler(404) def page_not_found(e): return render_template('404.html'),404
@app.errorhandler(500) def Internal_error(e): return render_template('500.html'),500
|
记录log
flask 内部维护了一个logger记录器,可以直接使用app.logger来使用,我们在定义RotatingFileHandler这个类来进行日志格式的定义。这样就完成了
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
if not app.debug: if not os.path.exists('logs'): os.mkdir('logs') file_handler = RotatingFileHandler('logs/microblog.log',maxBytes=10240,backupCount=10) file_handler.setFormatter(logging.Formatter( '%(asctime)s %(levelname)s:%(message)s [in %(pathname)s:%(lineno)d]' )) app.logger.addHandler(file_handler) app.logger.setLevel(logging.INFO) app.logger.info("app startup")
|