Module demo_api.utils.logging_config
Configuration du logging avec structlog pour demo_api
Functions
def get_logger(name: str) ‑> structlog.stdlib.BoundLogger-
Expand source code
def get_logger(name: str) -> structlog.stdlib.BoundLogger: """ Retourne un logger configuré avec structlog. Args: name: Nom du logger (généralement __name__ du module appelant) Returns: Logger configuré avec structlog """ setup_logging() return structlog.get_logger(name)Retourne un logger configuré avec structlog.
Args
name- Nom du logger (généralement name du module appelant)
Returns
Logger configuré avec structlog
def setup_logging()-
Expand source code
def setup_logging(): """ Configure structlog avec un format JSON joli et structuré. """ debug_mode = config.DEMO_API_DEBUG log_level = config.DEMO_API_LOG_LEVEL # Configuration des processeurs processors = [ structlog.stdlib.filter_by_level, structlog.stdlib.add_logger_name, structlog.stdlib.add_log_level, structlog.stdlib.PositionalArgumentsFormatter(), structlog.processors.TimeStamper(fmt="iso"), structlog.processors.StackInfoRenderer(), structlog.processors.format_exc_info, ] # Configuration pour la console (format humain) console_processors = processors + [ structlog.dev.ConsoleRenderer(colors=sys.stdout.isatty()) ] # Configuration selon le niveau de détail souhaité if debug_mode: # Mode debug : plus de détails console_processors.append(structlog.processors.dict_tracebacks) # Configuration structlog structlog.configure( processors=console_processors, wrapper_class=structlog.stdlib.BoundLogger, context_class=dict, logger_factory=structlog.stdlib.LoggerFactory(), cache_logger_on_first_use=True, ) return log_levelConfigure structlog avec un format JSON joli et structuré.