Comp-I / src /utils /logging_utils.py
axrzce's picture
Deploy from GitHub main
338d95d verified
raw
history blame
1.29 kB
"""
Logging utilities for CompI project.
"""
import logging
import sys
from pathlib import Path
from src.config import LOG_LEVEL, LOG_FORMAT, PROJECT_ROOT
def setup_logger(name: str, log_file: str = None) -> logging.Logger:
"""
Set up a logger with console and optional file output.
Args:
name: Logger name
log_file: Optional log file path
Returns:
Configured logger instance
"""
logger = logging.getLogger(name)
logger.setLevel(getattr(logging, LOG_LEVEL.upper()))
# Clear existing handlers
logger.handlers.clear()
# Console handler
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(logging.INFO)
console_formatter = logging.Formatter(LOG_FORMAT)
console_handler.setFormatter(console_formatter)
logger.addHandler(console_handler)
# File handler (optional)
if log_file:
log_path = PROJECT_ROOT / "logs"
log_path.mkdir(exist_ok=True)
file_handler = logging.FileHandler(log_path / log_file)
file_handler.setLevel(logging.DEBUG)
file_formatter = logging.Formatter(LOG_FORMAT)
file_handler.setFormatter(file_formatter)
logger.addHandler(file_handler)
return logger