Spaces:
Paused
Paused
| """Centralized logging configuration for FDAM AI Pipeline. | |
| Provides structured logging for HuggingFace Spaces troubleshooting. | |
| Set LOG_LEVEL=DEBUG for detailed output. | |
| """ | |
| import logging | |
| import sys | |
| from typing import Literal | |
| LogLevel = Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] | |
| def setup_logging(level: LogLevel = "INFO") -> None: | |
| """Configure structured logging for FDAM Pipeline. | |
| Args: | |
| level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL). | |
| DEBUG provides detailed inference timing and RAG scores. | |
| INFO provides pipeline stage progress. | |
| WARNING and above for production. | |
| """ | |
| log_format = "[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s" | |
| date_format = "%Y-%m-%d %H:%M:%S" | |
| # Configure root logger | |
| logging.basicConfig( | |
| level=getattr(logging, level.upper(), logging.INFO), | |
| format=log_format, | |
| datefmt=date_format, | |
| handlers=[logging.StreamHandler(sys.stdout)], | |
| force=True, # Override any existing config | |
| ) | |
| # Reduce noise from third-party libraries | |
| logging.getLogger("chromadb").setLevel(logging.WARNING) | |
| logging.getLogger("transformers").setLevel(logging.WARNING) | |
| logging.getLogger("gradio").setLevel(logging.WARNING) | |
| logging.getLogger("httpx").setLevel(logging.WARNING) | |
| logging.getLogger("httpcore").setLevel(logging.WARNING) | |
| logging.getLogger("urllib3").setLevel(logging.WARNING) | |
| logging.getLogger("PIL").setLevel(logging.WARNING) | |
| # Log the logging configuration itself | |
| logger = logging.getLogger(__name__) | |
| logger.info(f"Logging initialized at {level} level") | |
| def get_logger(name: str) -> logging.Logger: | |
| """Get a logger with the given name. | |
| Convenience function for consistent logger creation. | |
| Args: | |
| name: Logger name (typically __name__ of the calling module). | |
| Returns: | |
| Configured logger instance. | |
| """ | |
| return logging.getLogger(name) | |