Source code for bapred.logger
"""
Logging configuration for BA-Pred
"""
import logging
import sys
from typing import Optional
[docs]
def setup_logger(
name: str = "bapred",
level: int = logging.INFO,
format_string: Optional[str] = None
) -> logging.Logger:
"""
Set up a logger with consistent formatting.
Args:
name: Logger name
level: Logging level
format_string: Custom format string
Returns:
Configured logger instance
"""
logger = logging.getLogger(name)
# Avoid adding multiple handlers
if logger.handlers:
return logger
logger.setLevel(level)
# Create console handler
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(level)
# Create formatter
if format_string is None:
format_string = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(format_string)
handler.setFormatter(formatter)
# Add handler to logger
logger.addHandler(handler)
return logger
# Create default logger instance
logger = setup_logger()