Spaces:
Sleeping
Sleeping
| """ | |
| Logging configuration for the Modius Agent Performance application. | |
| """ | |
| import logging | |
| import logging.handlers | |
| from typing import Optional | |
| from ..config.constants import LOGGING_CONFIG | |
| def setup_logging(level: Optional[str] = None, log_file: Optional[str] = None) -> None: | |
| """Set up logging configuration.""" | |
| log_level = level or LOGGING_CONFIG['level'] | |
| log_file = log_file or LOGGING_CONFIG['file'] | |
| log_format = LOGGING_CONFIG['format'] | |
| # Convert string level to logging constant | |
| if isinstance(log_level, str): | |
| log_level = getattr(logging, log_level.upper()) | |
| # Create logger | |
| logger = logging.getLogger() | |
| logger.setLevel(log_level) | |
| # Clear existing handlers | |
| logger.handlers.clear() | |
| # Create formatter | |
| formatter = logging.Formatter(log_format) | |
| # Console handler | |
| console_handler = logging.StreamHandler() | |
| console_handler.setLevel(log_level) | |
| console_handler.setFormatter(formatter) | |
| logger.addHandler(console_handler) | |
| # File handler with rotation | |
| if log_file: | |
| file_handler = logging.handlers.RotatingFileHandler( | |
| log_file, | |
| maxBytes=10*1024*1024, # 10MB | |
| backupCount=5 | |
| ) | |
| file_handler.setLevel(log_level) | |
| file_handler.setFormatter(formatter) | |
| logger.addHandler(file_handler) | |
| # Reduce third-party library logging | |
| logging.getLogger("urllib3").setLevel(logging.WARNING) | |
| logging.getLogger("httpx").setLevel(logging.WARNING) | |
| logging.getLogger("matplotlib").setLevel(logging.WARNING) | |
| logging.getLogger("requests").setLevel(logging.WARNING) | |
| # Log startup information | |
| logger.info("============= APPLICATION STARTING =============") | |
| logger.info(f"Logging level set to: {logging.getLevelName(log_level)}") | |
| if log_file: | |
| logger.info(f"Logging to file: {log_file}") | |
| def get_logger(name: str) -> logging.Logger: | |
| """Get a logger instance.""" | |
| return logging.getLogger(name) | |