import logging import multiprocessing import os from config.env import env # Ensure the environment variable for Django settings is set os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.django.production") # Import Django and set it up before accessing settings import django # noqa: E402 django.setup() from config.django.production import LOGGING as DJANGO_LOGGERS, DEBUG # noqa: E402 from config.custom_logging import BackendLogger # noqa: E402 BIND_ADDRESS = env("DJANGO_BIND_ADDRESS", default="127.0.0.1") PORT = env("DJANGO_PORT", default=8000) # Server settings bind = f"{BIND_ADDRESS}:{PORT}" workers = env.int("DJANGO_WORKERS", default=multiprocessing.cpu_count() * 2 + 1) reload = DEBUG # Logging logconfig_dict = DJANGO_LOGGERS gunicorn_logger = logging.getLogger(BackendLogger.GUNICORN) # Hooks def on_starting(_): gunicorn_logger.info(f"Starting gunicorn server with {workers} workers") if reload: gunicorn_logger.warning("Reload settings enabled (dev mode)") def on_reload(_): gunicorn_logger.warning("Gunicorn server has reloaded") def when_ready(_): gunicorn_logger.info("Gunicorn server is ready")