flask 日志記錄


logging 模塊的日志級別

logging模塊默認定義了以下幾個日志等級,它允許開發人員自定義其他日志級別,但是這是不被推薦的,尤其是在開發供別人使用的庫時,因為這會導致日志級別的混亂。

DEBUG 最詳細的日志信息,典型應用場景是 問題診斷

INFO 信息詳細程度僅次於DEBUG,通常只記錄關鍵節點信息,用於確認一切都是按照我們預期的那樣進行工作

WARNING 當某些不期望的事情發生時記錄的信息(如,磁盤可用空間較低),但是此時應用程序還是正常運行的

ERROR 由於一個更嚴重的問題導致某些功能不能正常運行時記錄的信息

FATAL/CRITICAL 整個系統即將/完全崩潰

開發應用程序或部署開發環境時,可以使用 DEBUG 或 INFO 級別的日志獲取盡可能詳細的日志信息來進行開發或部署調試;

應用上線或部署生產環境時,應該使用 WARNING 或 ERROR 或 CRITICAL 級別的日志來降低機器的I/O壓力和提高獲取錯誤日志信息的效率。

日志級別的指定通常都是在應用程序的配置文件中進行指定的。

 logging 模塊的使用方式介紹

loggers 提供應用程序代碼直接使用的接口

handlers 用於將日志記錄發送到指定的目的位置

filters 提供更細粒度的日志過濾功能,用於決定哪些日志記錄將會被輸出(其它的日志記錄將會被忽略)

formatters 用於控制日志信息的最終輸出格式

from flask import Flask

app = Flask(__name__)


# 設置日志的記錄等級
import logging
from logging.handlers import RotatingFileHandler


def setup_log():
    """配置日志"""

    # 設置日志的記錄等級
    logging.basicConfig(level=logging.DEBUG)  # 調試debug級
    # 創建日志記錄器,指明日志保存的路徑、每個日志文件的最大大小、保存的日志文件個數上限
    file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024 * 1024 * 100, backupCount=10)
    # 創建日志記錄的格式 日志等級 輸入日志信息的文件名 行數 日志信息
    formatter = logging.Formatter('%(levelname)s %(filename)s:%(lineno)d %(message)s')
    # 為剛創建的日志記錄器設置日志記錄格式
    file_log_handler.setFormatter(formatter)
    # 為全局的日志工具對象(flask app使用的)添加日志記錄器
    logging.getLogger().addHandler(file_log_handler)


@app.route('/')
def long_test():
    from flask import current_app
    current_app.logger.error('error')
    return 'logger'
if __name__ == '__main__':
    setup_log()
    app.run()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM