def init_logger()

in mozregression/log.py [0:0]


def init_logger(debug=True, allow_color=ALLOW_COLOR, output=None):
    """
    Initialize the mozlog logger. Must be called once before using logs.
    """
    # late binding of sys.stdout is required for windows color to work
    output = output or sys.stdout
    start = time.time() * 1000
    level_color = {
        "WARNING": Fore.MAGENTA + Style.BRIGHT,
        "CRITICAL": Fore.RED + Style.BRIGHT,
        "ERROR": Fore.RED + Style.BRIGHT,
        "DEBUG": Fore.CYAN + Style.BRIGHT,
        "INFO": Style.BRIGHT,
    }
    time_color = Fore.BLUE
    if mozinfo.os == "win":
        time_color += Style.BRIGHT  # this is unreadable on windows without it

    def format_log(data):
        level = data["level"]
        elapsed = _format_seconds((data["time"] - start) / 1000)
        if allow_color:
            elapsed = time_color + elapsed + Style.RESET_ALL
            if level in level_color:
                level = level_color[level] + level + Style.RESET_ALL
        msg = data["message"]
        if "stack" in data:
            msg += "\n%s" % data["stack"]
        return "%s %s: %s\n" % (elapsed, level, msg)

    logger = StructuredLogger("mozregression")
    handler = LogLevelFilter(StreamHandler(output, format_log), "debug" if debug else "info")
    logger.add_handler(handler)

    init_python_redirect_logger(logger)

    set_default_logger(logger)
    return logger