Spaces:
Sleeping
Sleeping
| import logging | |
| import sys | |
| from typing import Optional | |
| from config.settings import settings | |
| def setup_logging( | |
| log_level: Optional[str] = None, | |
| log_format: Optional[str] = None | |
| ) -> logging.Logger: | |
| """ | |
| Set up logging configuration for the application. | |
| Args: | |
| log_level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) | |
| log_format: Custom log format string | |
| Returns: | |
| Configured logger instance | |
| """ | |
| # Determine log level from settings or use provided value | |
| level = log_level or ("DEBUG" if settings.debug else "INFO") | |
| level = getattr(logging, level.upper()) | |
| # Default log format | |
| if log_format is None: | |
| log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" | |
| # Configure the root logger | |
| logging.basicConfig( | |
| level=level, | |
| format=log_format, | |
| handlers=[ | |
| logging.StreamHandler(sys.stdout), # Log to stdout | |
| ] | |
| ) | |
| # Create and return a logger for the application | |
| logger = logging.getLogger("todo_api") | |
| logger.setLevel(level) | |
| return logger | |
| def get_logger(name: str) -> logging.Logger: | |
| """ | |
| Get a named logger instance. | |
| Args: | |
| name: Name for the logger | |
| Returns: | |
| Logger instance with the specified name | |
| """ | |
| return logging.getLogger(f"todo_api.{name}") | |
| # Create a default logger for the application | |
| logger = setup_logging() |