基于 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()

参考资料

flask python