Source code for boussole.logs

"""
Logging
=======
"""
import logging


# Default logger conf
BOUSSOLE_LOGGER_CONF = (
    ('DEBUG', 'cyan'),
    ('INFO', 'green'),
    ('WARNING', 'yellow'),
    ('ERROR', 'red'),
)


[docs]def init_logger(level, printout=True): """ Initialize app logger to configure its level/handler/formatter/etc.. Todo: * Colors using "python-colorlog"; * We need a "notice" level higher than ERROR (so it's allways displayed); * A mean to raise click.Abort when ERROR is used; Args: level (str): Level name (``debug``, ``info``, etc..). Keyword Arguments: printout (bool): If False, logs will never be outputed. Returns: logging.Logger: Application logger. """ root_logger = logging.getLogger("boussole") root_logger.setLevel(level) if not printout: from StringIO import StringIO dummystream = StringIO() root_logger.addHandler(logging.StreamHandler(dummystream)) else: root_logger.addHandler(logging.StreamHandler()) return root_logger