"""Structured logging for OPC system.""" from __future__ import annotations import sys from pathlib import Path from loguru import logger def setup_logging(log_dir: Path | None = None, level: str = "INFO") -> None: """Configure loguru for OPC with file + console output.""" logger.remove() logger.add( sys.stderr, level=level, format="{time:HH:mm:ss} | {level: <8} | {name} - {message}", colorize=True, ) if log_dir: from datetime import date day_dir = log_dir / date.today().isoformat() day_dir.mkdir(parents=True, exist_ok=True) logger.add( str(day_dir / "opc.log"), level="DEBUG", format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", rotation="50 MB", retention="30 days", )