import sys

from loguru import logger

from app.core.env import env_bool, env_str


def configure_logging() -> None:
    """Configure stderr + rotating file logging once at app startup."""
    log_level = env_str("LOG_LEVEL", "INFO").upper()

    logger.remove()

    logger.add(
        sys.stderr,
        level=log_level,
        backtrace=False,
        diagnose=False,
        enqueue=True,
    )
    logger.add(
        env_str("LOG_PATH", "logs/app.log"),
        rotation=env_str("LOG_ROTATION", "10 MB"),
        retention=env_str("LOG_RETENTION", "10 days"),
        level=log_level,
        serialize=env_bool("LOG_SERIALIZE", True),
        enqueue=True,
        backtrace=False,
        diagnose=False,
    )


configure_logging()