Spaces:
Build error
Build error
File size: 1,585 Bytes
c413127 2cb5a84 c413127 2cb5a84 c413127 2cb5a84 c413127 2cb5a84 c413127 2cb5a84 c413127 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | import logging
from datetime import datetime
from pathlib import Path
from typing import Final
from rich.logging import RichHandler
from src.config import Config
def setup_logging(
logger: logging.Logger,
log_dir: Path = Config().navigator.log,
file_logging_level=logging.DEBUG,
console_logging_level=logging.INFO,
) -> None:
"""Setup logging to both file and console with rich formatting
Args:
log_dir: Directory to store log files
"""
# Create logs directory if it doesn't exist
log_dir.mkdir(parents=True, exist_ok=True)
# Generate log filename with timestamp
timestamp = datetime.now().strftime("%Y%m%d-%H%M%S")
log_file = log_dir / f"pipeline_{timestamp}.log"
# Create formatters
file_formatter = logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
console_formatter = logging.Formatter("%(message)s")
# Setup file handler
file_handler = logging.FileHandler(log_file, encoding="utf-8")
file_handler.setFormatter(file_formatter)
file_handler.setLevel(file_logging_level)
# Setup console handler with rich formatting
console_handler = RichHandler(rich_tracebacks=True, markup=True, show_time=False)
console_handler.setFormatter(console_formatter)
console_handler.setLevel(console_logging_level)
# Setup root logger
root_logger = logging.getLogger()
root_logger.setLevel(file_logging_level)
root_logger.addHandler(file_handler)
root_logger.addHandler(console_handler)
logger.info(f"Logging to file: {log_file}")
|