Coverage for .tox/py311/lib/python3.11/site-packages/pydalec/logging_utils.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-05-26 22:48 +0200

1"""Helpers for configuring pydalec logging in applications and REPL sessions.""" 

2 

3import logging 

4 

5_DEBUG_HANDLER_NAME = 'pydalec.debug' 

6 

7 

8def enable_debug_logging(level: int = logging.DEBUG) -> logging.Logger: 

9 """Enable console logging for the pydalec logger without touching root logger. 

10 

11 This helper is intentionally opt-in and idempotent. 

12 """ 

13 logger = logging.getLogger('pydalec') 

14 logger.setLevel(level) 

15 

16 handler_exists = any(handler.get_name() == _DEBUG_HANDLER_NAME for handler in logger.handlers) 

17 if not handler_exists: 

18 handler = logging.StreamHandler() 

19 handler.set_name(_DEBUG_HANDLER_NAME) 

20 handler.setFormatter(logging.Formatter('%(asctime)s %(name)s %(levelname)s: %(message)s')) 

21 logger.addHandler(handler) 

22 

23 return logger