Spaces:
Running
Running
#!/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() |