基於 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()
參考文獻
- How should logging in Flask look like?
- Design issue with flask.logger.create_logger().
- Global logging with flask