Error Handle

Debug Mode
set export FLASK_DEBUG=1

debug模式允许用户去在服务上远程运行代码。其第二个特性是reloader:当源码修改后,会自动重启应用程序

200(运行成功)
500(数据库错误)

Flask使用Python的logging包来写log,并且该包已经可以用来发送Log到email(SMTPHandler)。具体配置与实现,见代码

测试方法:
1.
打开第二个DOS窗口
(venv) $ python -m smtpd -n -c DebuggingServer localhost:8025

在原来的窗口(第一个DOS窗口)中输入
set MAIL_SERVER=localhost
set MAIL_PORT=8025
set FLASK_DEBUG=0

#error.py
from flask import render_template
from app import app, db

@app.errorhandler(404)
def not_found_error(error):
    return render_template('404.html'), 404

@app.errorhandler(500)
def internal_error(error):
    db.session.rollback()
    return render_template('500.html'), 500

log输出到文件

from logging.handlers import RotatingFileHandler

    if not os.path.exists('logs'):
        os.mkdir('logs')
        file_handler=RotatingFileHandler('logs/microblog.log', maxBytes=10240, ckupCount=10)#log文件名为microblog.log
        file_handler.setFormatter(logging.Formatter(
            '%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'))
        #log格式,包含时间戳,log等级,信息和源文件和log在哪行
        file_handler.setLevel(logging.INFO)
        app.logger.addHandler(file_handler)

        app.logger.setLevel(logging.INFO)
        app.logger.info('Microblog startup')
        
posted @ 2018-03-23 10:38  blog_hfg  阅读(172)  评论(0)    收藏  举报