Witam
Zacząłem się bawić Fastapi + uvicorn i napotkałem parolem z logerem. O tyle o ile wszystko co chcę ładnie mi loguje i w takim formacie jak potrzebuję to mam problem z rakami komutacyjnymi. Wysyłam ramkę GET loguje mi się że serwer taką dostał ale nie loguje mi już odpowiedzi. Chciałbym by dla INFO logowane były ramki komunikacyjne dla request i dla response.
Mój kod:
main.py

from typing import Optional
import logging
import logi
from fastapi import FastAPI
import uvicorn
lgr = logging.getLogger(__name__)
test_api = FastAPI()

@test_api.on_event("startup")
async def startup_event():
    lgr.info('siemka')

@test_api.on_event("shutdown")
async def shutdown_event():
    lgr.info('Nara')

@test_api.get("/")
def read_root():
    return {"Hello": "World"}

@test_api.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}

if __name__ == "__main__":
    uvicorn.run(test_api, port=8001, log_level="info", log_config=None)

log.py

import logging
import logging.handlers
HOME_DIR = './'
LOG_LVL_FILE = logging.INFO
LOG_LVL_CONSOLE = logging.INFO

# create logger with 'spam_application'
logger = logging.getLogger('')
logger.setLevel(logging.DEBUG)
logger.handlers = []

# create file handler which logs even debug messages
fh = logging.handlers.RotatingFileHandler(HOME_DIR + "error.log",
                                          maxBytes = 1000000,
                                          backupCount=20,
                                          encoding="utf8")
fh.setLevel(LOG_LVL_FILE)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(LOG_LVL_CONSOLE)

# create formatter and add it to the handlers
formatter = logging.Formatter('[%(asctime)s] - [%(levelname)s] - [%(filename)s[%(lineno)d].%(funcName)s]: %(message)s')
ch.setFormatter(formatter)

# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)
fh.setFormatter(formatter)


Za każdym razem dla GET dostaję tylko tyle:

[2021-01-19 12:20:45,376] - [INFO] - [h11_impl.py[456].send]: 127.0.0.1:8974 - "GET / HTTP/1.1" 200

Ja chciałbym dostawić też odpowiedź jaka wyleciała z serwera na tego tera z dokładną ramką. Da się tego logera tak ustawić ?