# 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)

    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