diff options
Diffstat (limited to 'src/livestreamer/logger.py')
-rw-r--r-- | src/livestreamer/logger.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/livestreamer/logger.py b/src/livestreamer/logger.py new file mode 100644 index 0000000..34463b4 --- /dev/null +++ b/src/livestreamer/logger.py @@ -0,0 +1,50 @@ +import sys + +class Logger(object): + Levels = ["none", "error", "warning", "info", "debug"] + Format = "[{module}][{level}] {msg}\n" + + output = sys.stdout + level = 0 + + @classmethod + def set_level(cls, level): + try: + index = Logger.Levels.index(level) + except ValueError: + return + + cls.level = index + + @classmethod + def set_output(cls, output): + cls.output = output + + def __init__(self, module): + self.module = module + + def msg(self, level, msg, *args): + if Logger.level < level or level > len(Logger.Levels): + return + + msg = msg.format(*args) + + self.output.write(Logger.Format.format(module=self.module, + level=Logger.Levels[level], + msg=msg)) + self.output.flush() + + def error(self, msg, *args): + self.msg(1, msg, *args) + + def warning(self, msg, *args): + self.msg(2, msg, *args) + + def info(self, msg, *args): + self.msg(3, msg, *args) + + def debug(self, msg, *args): + self.msg(4, msg, *args) + + +__all__ = ["Logger"] |