|
|
import asyncio |
|
|
import logging |
|
|
import sys |
|
|
|
|
|
import uvicorn |
|
|
from dotenv import load_dotenv |
|
|
|
|
|
from core import settings |
|
|
|
|
|
load_dotenv() |
|
|
|
|
|
if __name__ == "__main__": |
|
|
root_logger = logging.getLogger() |
|
|
if root_logger.handlers: |
|
|
print( |
|
|
f"Warning: Root logger already has {len(root_logger.handlers)} handler(s) configured. " |
|
|
f"basicConfig() will be ignored. Current level: {logging.getLevelName(root_logger.level)}" |
|
|
) |
|
|
|
|
|
logging.basicConfig(level=settings.LOG_LEVEL.to_logging_level()) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if sys.platform == "win32": |
|
|
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) |
|
|
uvicorn.run( |
|
|
"service:app", |
|
|
host=settings.HOST, |
|
|
port=settings.PORT, |
|
|
reload=settings.is_dev(), |
|
|
timeout_graceful_shutdown=settings.GRACEFUL_SHUTDOWN_TIMEOUT, |
|
|
) |
|
|
|