基于 Flask 的应用程序整合日志
Flask 有一个“app.logger”,您可以将其用于与 webapp 相关的日志记录,对于 Flask 应用使用的其他库或包,通常使用 Python 标准日志记录。有报告称,基于 Flask 的应用中来自各种来源的日志有时会遗漏或变得混乱。有关问题的详细信息,请参阅底部的参考部分。一种解决方法是设置全局根日志记录配置并从 Flask 中覆盖该配置。
import logging
from flask import Flask, jsonify
app = Flask(__name__)
# config global logging
fmt = logging.Formatter(
"[%(asctime)s] [%(process)d] [%(levelname)s] %(name)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S %z"
)
hlr = logging.StreamHandler()
hlr.setFormatter(fmt)
logging.getLogger().addHandler(hlr)
logging.getLogger().setLevel(logging.INFO)
app.logger.handlers = []
app.logger.propagate = True
@app.route("/")
def index():
return jsonify({
"message": "Hello, World!"
})
if __name__ == "__main__":
app.run()
参考资料
- How should logging in Flask look like?
- Design issue with flask.logger.create_logger().
- Global logging with flask