Spaces:
Build error
Build error
| """ | |
| Logging utility module for consistent logging across the application. | |
| """ | |
| import sys | |
| from pathlib import Path | |
| from loguru import logger | |
| from app.config import settings | |
| def setup_logging() -> None: | |
| """Configure application logging with loguru.""" | |
| # Remove default handler | |
| logger.remove() | |
| # Console handler | |
| logger.add( | |
| sys.stderr, | |
| format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>", | |
| level="DEBUG" if settings.debug else "INFO", | |
| colorize=True, | |
| ) | |
| # File handler | |
| log_file = settings.base_dir / "logs" / "app.log" | |
| log_file.parent.mkdir(parents=True, exist_ok=True) | |
| logger.add( | |
| log_file, | |
| format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", | |
| level="DEBUG", | |
| rotation="10 MB", | |
| retention="7 days", | |
| compression="zip", | |
| ) | |
| def get_logger(name: str): | |
| """Get a logger instance with the given name.""" | |
| return logger.bind(name=name) | |