Skip to content

Instantly share code, notes, and snippets.

@philippegirard
Created April 18, 2020 20:18
Show Gist options
  • Select an option

  • Save philippegirard/7cdbec8036561285b5579d8d334b20ba to your computer and use it in GitHub Desktop.

Select an option

Save philippegirard/7cdbec8036561285b5579d8d334b20ba to your computer and use it in GitHub Desktop.
fastapi logging middleware
import logging
from fastapi import FastAPI
from uicheckapp.services import EchoService
logging.config.fileConfig('logging.conf', disable_existing_loggers=False)
logger = logging.getLogger(__name__)
app = FastAPI()
@app.middleware("http")
async def log_requests(request: Request, call_next):
idem = ''.join(random.choices(string.ascii_uppercase + string.digits, k=6))
logger.info(f"rid={idem} start request path={request.url.path}")
start_time = time.time()
response = await call_next(request)
process_time = (time.time() - start_time) * 1000
formatted_process_time = '{0:.2f}'.format(process_time)
logger.info(f"rid={idem} completed_in={formatted_process_time}ms status_code={response.status_code}")
return response
@app.get("/")
async def root():
logger.info("logging from the root logger")
EchoService.echo("hi")
return {"status": "alive"}
@Tammura
Copy link
Copy Markdown

Tammura commented Apr 29, 2024

thx very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment