基於 Flask 的應用程式整合日誌

Flask 有一個“app.logger”,您可以將其用於 webapp 相關的日誌記錄,對於 flask app 使用的其他函式庫或套件,通常使用 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