Skip to content

logging

Logging configuration for pre-commit-snippets.

logging

Logging configuration for pre-commit-snippets.

This module provides a centralized logger and configuration function for the package. It supports three verbosity levels: WARNING (default), INFO (--verbose), and DEBUG (--debug).

setup_logging(verbose=False, debug=False)

Configure logging for the application.

Parameters:

Name Type Description Default
verbose bool

If True, set level to INFO.

False
debug bool

If True, set level to DEBUG (overrides verbose).

False
Source code in pre_commit_snippet/logging.py
def setup_logging(verbose: bool = False, debug: bool = False) -> None:
    """
    Configure logging for the application.

    Args:
        verbose: If True, set level to INFO.
        debug: If True, set level to DEBUG (overrides verbose).
    """
    if debug:
        level = logging.DEBUG
        fmt = "%(asctime)s [%(levelname)s] %(name)s: %(message)s"
    elif verbose:
        level = logging.INFO
        fmt = "%(message)s"
    else:
        level = logging.WARNING
        fmt = "%(message)s"

    handler = logging.StreamHandler(sys.stderr)
    handler.setFormatter(logging.Formatter(fmt))

    logger.setLevel(level)
    logger.handlers.clear()
    logger.addHandler(handler)
    logger.propagate = False