"""Logging configuration — console + rotating file."""

from __future__ import annotations

import logging
from logging.handlers import RotatingFileHandler


def setup_logging(level: str = "INFO", log_file: str = "lis-middleware.log") -> None:
    """Configure root logging with a console and a rotating file handler."""
    fmt = logging.Formatter(
        "%(asctime)s [%(levelname)s] %(name)s: %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",
    )
    root = logging.getLogger()
    root.setLevel(getattr(logging, level.upper(), logging.INFO))
    root.handlers.clear()

    console = logging.StreamHandler()
    console.setFormatter(fmt)
    root.addHandler(console)

    try:
        file_handler = RotatingFileHandler(
            log_file, maxBytes=5 * 1024 * 1024, backupCount=5, encoding="utf-8"
        )
        file_handler.setFormatter(fmt)
        root.addHandler(file_handler)
    except OSError:
        # File logging is best-effort; console still works.
        root.warning("could not open log file %s — file logging disabled", log_file)
