Source code for dataclass_wizard.log

from __future__ import annotations
from logging import getLogger, Logger, StreamHandler, DEBUG

from .constants import LOG_LEVEL, PACKAGE_NAME


LOG = getLogger(PACKAGE_NAME)
LOG.setLevel(LOG_LEVEL)


[docs] def enable_library_debug_logging( debug: bool | int, logger: Logger = LOG, ) -> int: """ Enable debug logging for a library logger without touching global logging. - Attaches a StreamHandler if none exists - Sets logger + handler level - Disables propagation to avoid duplicate logs Returns the resolved logging level. """ lvl = DEBUG if isinstance(debug, bool) else debug logger.setLevel(lvl) if not any(isinstance(h, StreamHandler) for h in logger.handlers): h = StreamHandler() h.setLevel(lvl) logger.addHandler(h) else: # ensure existing stream handlers honor the new level for h in logger.handlers: if isinstance(h, StreamHandler): h.setLevel(lvl) logger.propagate = False return lvl