TREA_2.0_codebase / utils /logger.py
malay-36's picture
Upload folder using huggingface_hub
fec9168 verified
Raw
History Blame Contribute Delete
1.64 kB
"""
Logging utilities for the temporal reasoning dataset pipeline.
"""
import logging
import sys
from pathlib import Path
from typing import Optional
def setup_logger(
name: str,
log_file: Optional[str] = None,
level: str = "INFO",
console_output: bool = True
) -> logging.Logger:
"""
Set up a logger with file and/or console handlers.
Args:
name: Name of the logger
log_file: Path to log file (if None, only console logging)
level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
console_output: Whether to output logs to console
Returns:
Configured logger instance
"""
logger = logging.getLogger(name)
logger.setLevel(getattr(logging, level.upper()))
# Remove existing handlers to avoid duplicates
logger.handlers = []
# Create formatter
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
# Console handler
if console_output:
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(getattr(logging, level.upper()))
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# File handler
if log_file:
log_path = Path(log_file)
log_path.parent.mkdir(parents=True, exist_ok=True)
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(getattr(logging, level.upper()))
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger