""" 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)