sam3 / metrics_evaluation /utils /logging_config.py
Thibaut's picture
Implement metrics evaluation system - CVAT extraction, SAM3 inference, metrics calculation, visualization, and main pipeline
6f98a26
"""Logging configuration for evaluation."""
import logging
import sys
from pathlib import Path
def setup_logging(log_file: Path | None = None, level: int = logging.INFO) -> None:
"""Set up logging configuration.
Args:
log_file: Optional path to log file
level: Logging level
"""
# Create formatters
detailed_formatter = logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
simple_formatter = logging.Formatter(
"%(levelname)s: %(message)s"
)
# Get root logger
logger = logging.getLogger()
logger.setLevel(level)
# Remove existing handlers
logger.handlers.clear()
# Console handler
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(level)
console_handler.setFormatter(simple_formatter)
logger.addHandler(console_handler)
# File handler
if log_file:
log_file.parent.mkdir(parents=True, exist_ok=True)
file_handler = logging.FileHandler(log_file, mode="w")
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(detailed_formatter)
logger.addHandler(file_handler)