Spaces:
Running
Running
| """ | |
| Centralized logging configuration for the application. | |
| """ | |
| import sys | |
| import os | |
| from loguru import logger | |
| from pathlib import Path | |
| from config import DEBUG, OUTPUT_DIR | |
| # Create logs directory | |
| LOGS_DIR = OUTPUT_DIR / "logs" | |
| LOGS_DIR.mkdir(exist_ok=True) | |
| # Configure logger | |
| logger.remove() # Remove default handler | |
| # Add console handler | |
| log_level = "DEBUG" if DEBUG else "INFO" | |
| 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=log_level | |
| ) | |
| # Add file handler for errors | |
| logger.add( | |
| LOGS_DIR / "error_{time:YYYY-MM-DD}.log", | |
| format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", | |
| level="ERROR", | |
| rotation="1 day", | |
| retention="7 days" | |
| ) | |
| # Add file handler for all logs | |
| logger.add( | |
| LOGS_DIR / "app_{time:YYYY-MM-DD}.log", | |
| format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", | |
| level=log_level, | |
| rotation="1 day", | |
| retention="3 days" | |
| ) | |
| # Export the configured logger | |
| def get_logger(name): | |
| """ | |
| Get a logger instance with the specified name. | |
| Args: | |
| name (str): Name of the logger, typically __name__ | |
| Returns: | |
| logger: Configured logger instance | |
| """ | |
| return logger.bind(name=name) | |