Module data_request_api.utilities.logger

Logger.

Functions

def change_log_file(logfile='/home/runner/work/CMIP7_DReq_Software/CMIP7_DReq_Software/log.out',
default=False)
Expand source code
def change_log_file(logfile=log_file, default=False):
    global log_file, logger
    if default:
        logger = get_logger()
        for hdlr in logger.handlers[:]:
            hdlr.flush()
            hdlr.close()
            logger.removeHandler(hdlr)
        new_hdlr = logging.StreamHandler(sys.stdout)
    else:
        log_file = logfile
        log_dir = os.path.dirname(os.path.abspath(log_file))
        if not os.path.exists(log_dir):
            os.makedirs(log_dir)
        logger = logging.getLogger()
        for hdlr in logger.handlers[:]:
            hdlr.flush()
            hdlr.close()
            logger.removeHandler(hdlr)
        new_hdlr = logging.FileHandler(log_file)
    new_hdlr.setFormatter(logging.Formatter(fmt='%(levelname)s: %(message)s'))
    logger.addHandler(new_hdlr)
    return logger
def change_log_level(level='info')
Expand source code
def change_log_level(level=log_level):
    global logger, log_level
    log_level = level
    logger.setLevel(log_level_to_int(level))
def get_logger()
Expand source code
def get_logger():
    return logger
def log_level_to_int(level)
Expand source code
def log_level_to_int(level):
    if isinstance(level, str):
        if level.lower() in ['debug', ]:
            return logging.DEBUG
        elif level.lower() in ['critical', ]:
            return logging.CRITICAL
        elif level.lower() in ['info', ]:
            return logging.INFO
        elif level.lower() in ['warning', ]:
            return logging.WARNING
        elif level.lower() in ['error', ]:
            return logging.ERROR
    else:
        return level
def log_msg(level, *args, **kwargs)
Expand source code
def log_msg(level, *args, **kwargs):
    logger.log(log_level_to_int(level), *args, **kwargs)