#!/usr/bin/env python3 # -*- coding: utf-8 -*- """Logging configuration for the chorus detection system.""" import logging import os import sys from typing import Optional from chorus_detection.config import PROJECT_ROOT # Create logs directory LOGS_DIR = PROJECT_ROOT / "logs" os.makedirs(LOGS_DIR, exist_ok=True) def setup_logger(name: str = "chorus_detection", level: int = logging.INFO, log_file: Optional[str] = None) -> logging.Logger: """Configure and return a logger with the specified name and level. Args: name: Name of the logger level: Logging level (default: INFO) log_file: Path to the log file (default: None) Returns: Configured logger instance """ logger = logging.getLogger(name) logger.setLevel(level) # Create formatter formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) # Create console handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(formatter) logger.addHandler(console_handler) # Create file handler if log_file is specified if log_file: file_handler = logging.FileHandler(log_file) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger # Create default logger logger = setup_logger()