{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": {
    "default": {
      "()": "uvicorn.logging.DefaultFormatter",
      "fmt": "%(asctime)s %(levelprefix)s [%(name)s] %(message)s"
    },
    "access": {
      "()": "uvicorn.logging.AccessFormatter",
      "fmt": "%(asctime)s %(levelprefix)s %(client_addr)s - \"%(request_line)s\" %(status_code)s"
    },
    "plain": {
      "format": "%(asctime)s %(levelname)-5s [%(name)s] %(message)s"
    }
  },
  "handlers": {
    "default": {
      "class": "logging.StreamHandler",
      "formatter": "default",
      "stream": "ext://sys.stdout"
    },
    "access": {
      "class": "logging.StreamHandler",
      "formatter": "access",
      "stream": "ext://sys.stdout"
    },
    "plain": {
      "class": "logging.StreamHandler",
      "formatter": "plain",
      "stream": "ext://sys.stdout"
    }
  },
  "loggers": {
    "uvicorn": { "handlers": ["default"], "level": "INFO", "propagate": false },
    "uvicorn.error": { "handlers": ["default"], "level": "INFO", "propagate": false },
    "uvicorn.access": { "handlers": ["access"], "level": "INFO", "propagate": false },
    "siftlode": { "handlers": ["plain"], "level": "INFO", "propagate": false }
  }
}
