Exemplo n.º 1
0
def get_logger(debug=True, logfile=None, replace_stdout=False):
    """
    Create the logger and attach the handlers.

    :param debug: the level of the messages that we should log
    :type debug: bool
    :param logfile: the file name of where we should to save the logs
    :type logfile: str
    :param replace_stdout: wether we should pipe all stdout/stderr to the
                           logger or not
    :type replace_stdout: bool

    :return: the new logger with the attached handlers.
    :rtype: logging.Logger
    """
    # TODO: get severity from command line args
    if debug:
        level = logging.DEBUG
    else:
        level = logging.WARNING

    # Create logger and formatter
    logger = logging.getLogger(name='leap.vpn')
    logger.setLevel(level)
    formatter = logging.Formatter(LOG_FORMAT)

    # Console handler
    try:
        import coloredlogs
        coloredlogs.install(level='DEBUG')
    except ImportError:
        console = logging.StreamHandler()
        console.setLevel(level)
        console.setFormatter(formatter)
        using_coloredlog = False
    else:
        using_coloredlog = True

    if using_coloredlog:
        replace_stdout = False

    # File handler
    if logfile is not None:
        base_path = os.path.dirname(logfile)
        mkdir_p(base_path)
        logger.debug('Setting logfile to %s ', logfile)
        fileh = logging.FileHandler(logfile)
        fileh.setLevel(logging.DEBUG)
        fileh.setFormatter(formatter)
        logger.addHandler(fileh)
        logger.debug('File handler plugged!')

    if replace_stdout:
        replace_stdout_stderr_with_logging(logger)

    return logger
Exemplo n.º 2
0
def get_logger(perform_rollover=False):
    """
    Push to the app stack the needed handlers and return a Logger object.

    :rtype: logbook.Logger
    """
    # NOTE: make sure that the folder exists, the logger is created before
    # saving settings on the first run.
    _base = os.path.join(get_path_prefix(), "leap")
    mkdir_p(_base)
    bitmask_log_file = os.path.join(_base, 'bitmask.log')

    # level = logbook.WARNING
    # if flags.DEBUG:
    #     level = logbook.NOTSET
    level = logbook.NOTSET

    # This handler consumes logs not handled by the others
    null_handler = logbook.NullHandler()
    null_handler.push_application()

    file_handler = logbook.RotatingFileHandler(bitmask_log_file,
                                               format_string=LOG_FORMAT,
                                               bubble=True,
                                               max_size=sys.maxint)

    if perform_rollover:
        file_handler.perform_rollover()

    file_handler.push_application()

    stream_handler = ColorizedStderrHandler(level=level,
                                            format_string=LOG_FORMAT,
                                            bubble=True)
    stream_handler.push_application()

    logger = logbook.Logger('leap')

    return logger
Exemplo n.º 3
0
def get_logger(perform_rollover=False):
    """
    Push to the app stack the needed handlers and return a Logger object.

    :rtype: logbook.Logger
    """
    # NOTE: make sure that the folder exists, the logger is created before
    # saving settings on the first run.
    _base = os.path.join(get_path_prefix(), "leap")
    mkdir_p(_base)
    bitmask_log_file = os.path.join(_base, "bitmask.log")

    # level = logbook.WARNING
    # if flags.DEBUG:
    #     level = logbook.NOTSET
    level = logbook.NOTSET

    # This handler consumes logs not handled by the others
    null_handler = logbook.NullHandler()
    null_handler.push_application()

    file_handler = logbook.RotatingFileHandler(
        bitmask_log_file, format_string=LOG_FORMAT, bubble=True, max_size=sys.maxint
    )

    if perform_rollover:
        file_handler.perform_rollover()

    file_handler.push_application()

    stream_handler = ColorizedStderrHandler(level=level, format_string=LOG_FORMAT, bubble=True)
    stream_handler.push_application()

    logger = logbook.Logger("leap")

    return logger