"""
Logging utility for SupportRAG application.
Provides consistent logging across all modules.
"""
import logging
import sys
from pathlib import Path
from loguru import logger as loguru_logger
from src.config import settings
def setup_logging():
"""Configure application-wide logging."""
# Remove default handler
loguru_logger.remove()
# Console handler
loguru_logger.add(
sys.stderr,
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
level=settings.log_level,
colorize=True
)
# File handler
log_path = settings.get_log_file_path()
log_path.parent.mkdir(parents=True, exist_ok=True)
loguru_logger.add(
log_path,
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
level=settings.log_level,
rotation="100 MB",
retention="30 days",
compression="zip"
)
def get_logger(name: str):
"""
Get a logger instance for a module.
Args:
name: Module name (typically __name__)
Returns:
Logger instance
"""
return loguru_logger.bind(name=name)
# Setup logging on import
setup_logging()