Spaces:
Sleeping
Sleeping
| """ | |
| Structured Logging Configuration | |
| """ | |
| import logging | |
| import sys | |
| from app.config import settings | |
| # Configure logging format with ISO 8601 timestamp | |
| # Format: LEVEL: YYYY-MM-DDTHH:MM:SS.sssZ - logger_name: message | |
| logging.basicConfig( | |
| level=logging.DEBUG if settings.DEBUG else logging.INFO, | |
| format="%(levelname)s: %(asctime)s - %(name)s: %(message)s", | |
| datefmt="%Y-%m-%dT%H:%M:%S", | |
| handlers=[ | |
| logging.StreamHandler(sys.stdout) | |
| ], | |
| force=True # Override any existing basicConfig calls | |
| ) | |
| # Suppress verbose third-party loggers for security and cleaner logs | |
| # Only show warnings and errors from these libraries during startup | |
| logging.getLogger("httpx").setLevel(logging.WARNING) | |
| logging.getLogger("httpcore").setLevel(logging.WARNING) | |
| logging.getLogger("urllib3").setLevel(logging.WARNING) | |
| def get_logger(name: str) -> logging.Logger: | |
| """ | |
| Get a logger instance | |
| """ | |
| return logging.getLogger(name) | |