""" Logging utilities for public web frontend. Simplified logging wrapper using structlog. """ import structlog import logging import sys from pathlib import Path def setup_logging(): """Configure structured logging for the web frontend.""" structlog.configure( processors=[ structlog.processors.TimeStamper(fmt="iso"), structlog.processors.add_log_level, structlog.processors.StackInfoRenderer(), structlog.dev.ConsoleRenderer() ], wrapper_class=structlog.make_filtering_bound_logger(logging.INFO), context_class=dict, logger_factory=structlog.PrintLoggerFactory(), cache_logger_on_first_use=True, ) def get_logger(name: str): """ Get a logger instance. Args: name: Logger name (usually __file__) Returns: Configured structlog logger """ if isinstance(name, str) and name.endswith('.py'): # Extract module name from file path name = Path(name).stem return structlog.get_logger(name) # Setup logging on module import setup_logging()