Logger For FastAPI - PullRequest
       14

Logger For FastAPI

2 голосов
/ 16 января 2020

Я перевожу свой код с Python flask на Fast-API. Я сталкиваюсь с проблемой при добавлении регистраторов в быстрый API. Он отображает

"AttributeError: у объекта 'FastAPI' нет атрибута 'logger'"

Пожалуйста, обратитесь к код для дополнительной информации

from fastapi import FastAPI, HTTPException
import uvicorn
from logging.handlers import RotatingFileHandler
import logging

app = FastAPI()

if __name__ == '__main__':

    formatter = logging.Formatter(
        "[%(asctime)s.%(msecs)03d] %(levelname)s [%(thread)d] - %(message)s", "%Y-%m-%d %H:%M:%S")
    handler = RotatingFileHandler('/log/abc.log', backupCount=0)
    logging.getLogger().setLevel(logging.NOTSET)
    app.logger.addHandler(handler)
    handler.setFormatter(formatter)

    app.logger.info('****************** Starting Server *****************') # "AttributeError: 'FastAPI' object has no attribute 'logger'"
    uvicorn.run()

1 Ответ

2 голосов
/ 09 марта 2020

Вы должны импортировать регистратор fastapi и затем манипулировать им. from fastapi.logger import logger

from fastapi import FastAPI, HTTPException
from fastapi.logger import logger as fastapi_logger
import uvicorn
from logging.handlers import RotatingFileHandler
import logging

app = FastAPI()

if __name__ == '__main__':

    formatter = logging.Formatter(
        "[%(asctime)s.%(msecs)03d] %(levelname)s [%(thread)d] - %(message)s", "%Y-%m-%d %H:%M:%S")
    handler = RotatingFileHandler('/log/abc.log', backupCount=0)
    logging.getLogger().setLevel(logging.NOTSET)
    fastapi_logger.addHandler(handler)
    handler.setFormatter(formatter)

    fastapi_logger.info('****************** Starting Server *****************')
    uvicorn.run()
...