Source code for utils.log

from utils.exception import to_str

import coloredlogs
import logging
import verboselogs

__all__ = [
    'Log'
]


# FIXME DEBUG level not working


[docs]class Log: """ Wrapper class for coloured and verbuse logs. """ levels = {} default = None
[docs] @classmethod def init(cls, default, levels): """ Set the default and levels and initialize the log manager. :param cls: Log class. :param default: default log level :param levels: log levels """ verboselogs.install() coloredlogs.install() cls.default = default cls.levels = {module: level for module, level in levels} logging.get_logger = logging.getLogger for module, level in levels: logging.get_logger(module).setLevel(level)
[docs] @classmethod def get(cls, name): """ Return the initialized logger with the module name. :param cls: Log class. :param name: module name :returns: logger instance """ level = cls.levels.get(name, cls.default) logger = logging.get_logger(name) def __exception(message, exception): logger.error(message) logger.debug(to_str(exception)) logger.exception = __exception logger.setLevel(level) return logger
[docs] @staticmethod def get_levels(): """ Get list of log level names. :returns: list of string """ return logging._levelToName.values()