"""File logging for the temperature daemon."""

from __future__ import annotations

import logging
import sys
from pathlib import Path


def setup_logging(
    log_path: Path,
    *,
    verbose: bool = False,
    stderr_level: int = logging.WARNING,
) -> logging.Logger:
    """Configure file logging; mirror warnings+ to stderr (systemd journal)."""
    logger = logging.getLogger("hot_tub.temp")
    logger.setLevel(logging.DEBUG if verbose else logging.INFO)
    logger.handlers.clear()

    try:
        log_path.parent.mkdir(parents=True, exist_ok=True)
        handler = logging.FileHandler(log_path, encoding="utf-8")
        handler.setFormatter(
            logging.Formatter(
                "%(asctime)s %(levelname)s %(message)s",
                datefmt="%Y-%m-%d %H:%M:%S",
            )
        )
        logger.addHandler(handler)
    except OSError as exc:
        print(f"hot-tub-temp: cannot open log file {log_path}: {exc}", file=sys.stderr, flush=True)

    stream = logging.StreamHandler(sys.stderr)
    stream.setLevel(stderr_level)
    stream.setFormatter(
        logging.Formatter("%(levelname)s %(message)s"),
    )
    logger.addHandler(stream)
    return logger
