爲什麼使用日誌
記錄重要信息,方便排查問題。
在Flask中使用日誌
Flask中用於記錄日誌的是app.logger(app即Flask的實例),app.logger封裝了Python內置的模塊logging。當然,也可以在Flask直接使用Python內置模塊logging記錄日誌。
@app.route('/login', methods=['POST'])
def login():
user = get_user(request.form['username'])
if user.check_password(request.form['password']):
login_user(user)
app.logger.info('%s logged in successfully', user.username)
return redirect(url_for('index'))
else:
app.logger.info('%s failed to log in', user.username)
abort(401)
在Flask中配置日誌
可以使用Python的dictConfig()配置日誌。示例:
# -*- coding:utf-8 -*-
from flask import Flask
from logging.config import dictConfig
dictConfig({
'version': 1,
'formatters': {'default': {
'format': '[%(asctime)s] %(levelname)s in %(module)s: %(message)s',
}},
'handlers': {'wsgi': {
'class': 'logging.StreamHandler',
'stream': 'ext://flask.logging.wsgi_errors_stream',
'formatter': 'default'
}},
'root': {
'level': 'INFO',
'handlers': ['wsgi']
}
})
app = Flask(__name__)
@app.route('/')
def index():
app.logger.info("visit index")
return "Hello World"
參考資料
[1]Flask官方文檔logging: https://flask.palletsprojects.com/en/1.1.x/logging/