""" Centralized logging configuration for Python Scheduler Uses loguru for advanced logging features """ from pathlib import Path from loguru import logger from core.config import SchedulerConfig def setup_logging(component: str = "daemon"): """ Setup logging for scheduler components Args: component: Component name ('daemon', 'gui', 'executor', etc.) """ # Remove default handler logger.remove() # Load config config = SchedulerConfig() # File handler for daemon logs if component == "daemon": log_dir = Path(config.daemon_log_dir) else: log_dir = Path(config.execution_log_dir) log_dir.mkdir(parents=True, exist_ok=True) logger.add( log_dir / f"{component}_{{time:YYYY-MM-DD}}.log", rotation="00:00", # Daily rotation retention=f"{config.get('logging.retention_days', 30)} days", level=config.log_level, format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function} - {message}", encoding="utf-8" ) logger.info(f"Logging initialized for component '{component}' at level {config.log_level}") return logger def get_logger(): """Get the configured logger instance""" return logger