darabonba/utils/logger.py (38 lines of code) (raw):
class Logger:
levels = {
'DEBUG': 10,
'INFO': 20,
'WARNING': 30,
'ERROR': 40,
'CRITICAL': 50
}
current_level = levels['DEBUG']
log_format = "{levelname}: {message}"
@staticmethod
def log(level_name, message):
if Logger.levels[level_name] >= Logger.current_level:
print(Logger.log_format.format(levelname=level_name, message=message))
@staticmethod
def info(message):
Logger.log('INFO', message)
@staticmethod
def debug(message):
Logger.log('DEBUG', message)
@staticmethod
def warning(message):
Logger.log('WARNING', message)
@staticmethod
def error(message):
Logger.log('ERROR', message)
@staticmethod
def critical(message):
Logger.log('CRITICAL', message)
@staticmethod
def set_level(level_name):
if level_name in Logger.levels:
Logger.current_level = Logger.levels[level_name]
else:
raise ValueError(f"Invalid log level: {level_name}")
@staticmethod
def format(log_format):
Logger.log_format = log_format