-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
62 lines (52 loc) · 1.62 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import logging
from fastapi import FastAPI
from config import settings
from src.commons.logger import setup_logger
from src.routers.v1 import router
setup_logger()
logger = logging.getLogger(__name__)
def get_app() -> FastAPI:
app = FastAPI(
title=settings.REST_APPLICATION_NAME,
description=settings.REST_APPLICATION_DESCRIPTION,
openapi_url="/api/openapi.json",
)
app.include_router(router)
return app
if __name__ == "__main__":
import uvicorn
logger.info("Starting application...")
log_dict_config = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"standard": {
"format": "%(asctime)s [%(process)d] [%(name)s] [%(levelname)s] %(message)s",
"datefmt": "%Y-%m-%d %H:%M:%S",
}
},
"handlers": {
"default": {
"level": settings.REST_APPLICATION_LOG_LEVEL.upper(),
"formatter": "standard",
"class": "logging.StreamHandler",
},
},
"loggers": {
"": {
"handlers": ["default"],
"level": settings.REST_APPLICATION_LOG_LEVEL.upper(),
"propagate": False,
},
},
}
uvicorn.run(
"main:get_app",
workers=settings.REST_APPLICATION_WORKERS,
host=settings.REST_APPLICATION_HOST,
port=settings.REST_APPLICATION_PORT,
reload=settings.REST_APPLICATION_RELOAD,
log_level=settings.REST_APPLICATION_LOG_LEVEL.lower(),
log_config=log_dict_config,
factory=True,
)