Auto-enabling Python logging when running in Jupyter kernerls

An approach is shown below for auto-enabling logging from inside a Python library when it is run in a Jupyter kernel.

# mylib/__init__.py

import logging
import os


def _in_jupyter_kernel() -> bool:
    try:
        from IPython import get_ipython
    except ImportError:
        return False

    shell = get_ipython()
    return shell is not None and getattr(shell, "kernel", None) is not None


logger = logging.getLogger(__name__)

if not logger.handlers:
    if (
        _in_jupyter_kernel()
        and os.getenv("MYLIB_AUTO_LOGGING", "1") != "0"
    ):
        handler = logging.StreamHandler()
        handler.setFormatter(
            logging.Formatter("%(levelname)s: %(message)s")
        )
        logger.addHandler(handler)
        logger.setLevel(logging.INFO)
        logger.propagate = False
    else:
        logger.addHandler(logging.NullHandler())
· logging, python, jupyter