Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

485
Visualizações
¿Cómo agregar una marca de tiempo a cada solicitud en los registros de uvicorn?

Cuando ejecuto mi servidor FastAPI usando uvicorn:

 uvicorn main:app --host 0.0.0.0 --port 8000 --log-level info

El registro que obtengo después de ejecutar el servidor:

 INFO: Started server process [405098] INFO: Waiting for application startup. INFO: Connect to database... INFO: Successfully connected to the database! INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: 122.179.31.158:54604 - "GET /api/hello_world?num1=5&num2=10 HTTP/1.1" 200 OK

¿Cómo obtengo la marca de tiempo junto con el registro de la solicitud? Me gusta:

 INFO: "2020-07-16:23:34:78" - 122.179.31.158:54604 - "GET /api/hello_world?num1=5&num2=10 HTTP/1.1" 200 OK
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puedes usar LOGGING_CONFIG de LOGGING_CONFIG

 import uvicorn from uvicorn.config import LOGGING_CONFIG from fastapi import FastAPI app = FastAPI() def run(): LOGGING_CONFIG["formatters"]["default"]["fmt"] = "%(asctime)s [%(name)s] %(levelprefix)s %(message)s" uvicorn.run(app) if __name__ == '__main__': run()

Que devolverá el registro de uvicornio con la marca de tiempo

 2020-08-20 02:33:53,765 [uvicorn.error] INFO: Started server process [107131] 2020-08-20 02:33:53,765 [uvicorn.error] INFO: Waiting for application startup. 2020-08-20 02:33:53,765 [uvicorn.error] INFO: Application startup complete. 2020-08-20 02:33:53,767 [uvicorn.error] INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
over 4 years ago · Santiago Trujillo Relatório

0

Puede crear una configuración de registrador de dictados e inicializarla usando la función dictConfig en su aplicación principal.

 #main.py from logging.config import dictConfig from config import log_config from fastapi import FastAPI dictConfig(log_config.sample_logger) app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} #config/log_config.py sample_logger = { "version": 1, "disable_existing_loggers": False, "formatters": { "access": { "()": "uvicorn.logging.AccessFormatter", "fmt": '%(levelprefix)s %(asctime)s :: %(client_addr)s - "%(request_line)s" %(status_code)s', "use_colors": True }, }, "handlers": { "access": { "formatter": "access", "class": "logging.StreamHandler", "stream": "ext://sys.stdout", }, }, "loggers": { "uvicorn.access": { "handlers": ["access"], "level": "INFO", "propagate": False }, }, }
over 4 years ago · Santiago Trujillo Relatório

0

Combinando las respuestas de @Yagiz Degirmenci y @HappyFace, obtuve este código.

 LOGGING_CONFIG["formatters"]["default"]["fmt"] = "%(asctime)s [%(name)s] %(levelprefix)s %(message)s" LOGGING_CONFIG["formatters"]["access"][ "fmt"] = '%(asctime)s [%(name)s] %(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s'

El registro le gusta esto:

 2021-03-31 18:38:22,728 [uvicorn.error] INFO: Started server process [21824] 2021-03-31 18:38:22,729 [uvicorn.error] INFO: Waiting for application startup. 2021-03-31 18:38:22,729 [uvicorn.error] INFO: Application startup complete. 2021-03-31 18:38:22,729 [uvicorn.error] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) 2021-03-31 18:38:26,359 [uvicorn.access] INFO: 127.0.0.1:51932 - "POST /limit HTTP/1.1" 200 OK
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda