Spaces:
Runtime error
Runtime error
| """ | |
| Logging configuration for the AI Chatbot application | |
| Configures error handling and logging infrastructure as required by the project | |
| """ | |
| import logging | |
| import sys | |
| from datetime import datetime | |
| from pathlib import Path | |
| def setup_logging(log_level=logging.INFO, log_format=None): | |
| """ | |
| Configure logging infrastructure for the application | |
| """ | |
| if log_format is None: | |
| log_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
| # Create logs directory if it doesn't exist | |
| logs_dir = Path("logs") | |
| logs_dir.mkdir(exist_ok=True) | |
| # Configure root logger | |
| root_logger = logging.getLogger() | |
| root_logger.setLevel(log_level) | |
| # Clear any existing handlers | |
| root_logger.handlers.clear() | |
| # Console handler | |
| console_handler = logging.StreamHandler(sys.stdout) | |
| console_handler.setLevel(log_level) | |
| console_formatter = logging.Formatter(log_format) | |
| console_handler.setFormatter(console_formatter) | |
| # File handler for general logs | |
| general_log_file = logs_dir / f"app_{datetime.now().strftime('%Y%m%d')}.log" | |
| file_handler = logging.FileHandler(general_log_file) | |
| file_handler.setLevel(log_level) | |
| file_formatter = logging.Formatter(log_format) | |
| file_handler.setFormatter(file_formatter) | |
| # Add handlers to root logger | |
| root_logger.addHandler(console_handler) | |
| root_logger.addHandler(file_handler) | |
| # Also set specific loggers to appropriate levels | |
| logging.getLogger("uvicorn").setLevel(logging.WARNING) | |
| logging.getLogger("fastapi").setLevel(log_level) | |
| logging.getLogger("sqlalchemy").setLevel(logging.WARNING) | |
| def get_logger(name: str) -> logging.Logger: | |
| """ | |
| Get a logger with the specified name | |
| """ | |
| return logging.getLogger(name) | |
| # Initialize logging when module is imported | |
| setup_logging() | |
| # Example usage: | |
| # logger = get_logger(__name__) | |
| # logger.info("Application started") | |
| # logger.error("An error occurred") |