import logging import sys from pythonjsonlogger import jsonlogger from app.config import settings def setup_logging(): handler = logging.StreamHandler(sys.stdout) formatter = jsonlogger.JsonFormatter( fmt="%(asctime)s %(levelname)s %(name)s %(message)s", rename_fields={"asctime": "timestamp", "levelname": "level"}, ) handler.setFormatter(formatter) root = logging.getLogger() root.handlers.clear() root.addHandler(handler) root.setLevel(getattr(logging, settings.LOG_LEVEL.upper(), logging.INFO)) # Quiet noisy loggers logging.getLogger("uvicorn.access").setLevel(logging.WARNING) logging.getLogger("sqlalchemy.engine").setLevel(logging.WARNING)