Source code for sample.logger

import logging

import colorlog


[docs] def init_logger(name, level, printout=True): """ Initialize app logger to configure its level/handler/formatter/etc.. Arguments: name (str): Logger name used to instanciate and retrieve it. level (str): Level name (``debug``, ``info``, etc..) to enable. Keyword Arguments: printout (bool): If False, logs will never be outputed. Returns: logging.Logger: Application logger. """ root_logger = logging.getLogger(name) root_logger.setLevel(level) # Redirect outputs to the void space, mostly for usage within unittests if not printout: from io import StringIO dummystream = StringIO() handler = logging.StreamHandler(dummystream) # Standard output with colored messages else: handler = logging.StreamHandler() handler.setFormatter( colorlog.ColoredFormatter( "%(asctime)s - %(log_color)s%(message)s", datefmt="%H:%M:%S" ) ) root_logger.addHandler(handler) return root_logger