前言前面一篇【FastAPI學(xué)習(xí)-29 uvicorn 使用 log_config 參數(shù)設(shè)置 logger 日志格式 】已經(jīng)學(xué)會了配置uvicorn 的日志。 如何在fastapi 項目代碼中添加自己的日志呢? 添加日志創(chuàng)建一個logger實例,名稱為”fast” from fastapi import FastAPIimport logging
logger = logging.getLogger("fast")
app = FastAPI()@app.get("/demo/")async def create_item(): logger.debug("info---------") logger.info("info---------") logger.warning("warning---------") logger.error("error---------") return {"demo": "hello world"}
啟動項目訪問/demo/ 地址,會看到warning 和 error的內(nèi)容,默認情況下輸出warning 以上級別的日志。
但是沒有添加日志的格式。 配置logger參考上一篇篇【FastAPI學(xué)習(xí)-29 uvicorn 使用 log_config 參數(shù)設(shè)置 logger 日志格式 】,默認loggers配置了3個:uvicorn、uvicorn.error、uvicorn.access "loggers": { "fast": { "handlers": [ "default" ], "level": "INFO" }, "uvicorn": { "handlers": [ "default" ], "level": "INFO" }, "uvicorn.error": { "level": "INFO" }, "uvicorn.access": { "handlers": [ "access" ], "level": "INFO", "propagate": false } }
在里面添加一個自己定義的”fast” 即可, handlers 處理器用uvicorn 默認的格式,日志級別設(shè)置INFO。 重新訪問就可以看到輸出的日志格式與默認格式一樣的了。
其它方法還有個更簡便的方法,直接從 uvicorn 導(dǎo)入 logger 實例, 這樣就不用配置日志了。 from fastapi import FastAPIfrom uvicorn.server import logger
app = FastAPI()@app.get("/demo/")async def create_item(): logger.debug("info---------") logger.info("info---------") logger.warning("warning---------") logger.error("error---------") return {"demo": "hello world"}
fastapi 里面也有個 logger 實例 from fastapi import logger 對應(yīng)的源碼 import logging
logger = logging.getLogger("fastapi")
logger 的名稱是”fastapi”,參考前面自定義的logger,需要在 log_config 參數(shù)里面配置,才有日志格式。
|