""" WSGI config for rad project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ """ import os from django.core.wsgi import get_wsgi_application from loguru import logger import sys from pathlib import Path # Configure Loguru sinks early so app imports see consistent logging. # Log to stdout (so `docker logs` shows messages) and to a file at # `/var/log/rad/app.log` for persistent collection / host tailing. try: # ensure directory exists log_dir = Path("/var/log/rad") log_dir.mkdir(parents=True, exist_ok=True) # Add stdout sink (if not already added by other code) logger.remove() # remove default handlers to avoid duplicate lines logger.add(sys.stdout, level="INFO", enqueue=True, backtrace=False, diagnose=False) # Add rotating file sink for persistence in container. Use JSON lines # (serialize=True) to make logs easy to query in Loki/Grafana. logger.add( str(log_dir / "app.log"), rotation="10 MB", retention="10 days", level="DEBUG", enqueue=True, serialize=True, ) except Exception: # Best-effort only — don't crash WSGI startup if logging can't be configured try: logger.add(sys.stderr) except Exception: pass os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rad.settings") application = get_wsgi_application()