Source code for putput.logger

import logging
import sys
from typing import IO


[docs]def get_logger(module_name: str, *, level: int = logging.INFO, stream: IO[str] = sys.stderr) -> logging.Logger: """Returns a configured logger for the module. Args: module_name: __name__ for the calling module. level: Minimum logging level. Messages with this level or higher will be shown. stream: 'stream' argument to logging.StreamHandler, typically sys.stdout or sys.stderr. Raises: ValueError: If stream is not 'stderr' or 'stdout'. """ logger = logging.getLogger(module_name) if not logger.handlers: logger.propagate = False logger.setLevel(level) stream_handler = logging.StreamHandler(stream) stream_handler.setLevel(level) handler_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' formatter = logging.Formatter(handler_format) stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) return logger