"""Structured logging helpers.""" import logging from typing import Any import structlog def configure_logging(level: int = logging.INFO) -> None: """Configure structlog for the application.""" timestamper = structlog.processors.TimeStamper(fmt="iso") structlog.configure( processors=[ structlog.stdlib.add_logger_name, structlog.stdlib.add_log_level, timestamper, structlog.processors.StackInfoRenderer(), structlog.processors.format_exc_info, structlog.processors.UnicodeDecoder(), structlog.dev.ConsoleRenderer() if level <= logging.DEBUG else structlog.processors.JSONRenderer(), ], context_class=dict, logger_factory=structlog.stdlib.LoggerFactory(), cache_logger_on_first_use=True, ) logging.basicConfig(level=level, format="%(message)s") def get_logger(*args: Any, **kwargs: Any) -> structlog.stdlib.BoundLogger: """Return a configured structlog logger.""" return structlog.get_logger(*args, **kwargs)