micropython-lib/logging/logging.py

66 wiersze
1.4 KiB
Python

# Dummy file to preclude import errors
# Should be reimplemented for MicroPython
# Reason:
# Basic, useful module, by CPython impl depends on module "string" which
# uses metaclasses.
CRITICAL = 50
ERROR = 40
WARNING = 30
INFO = 20
DEBUG = 10
NOTSET = 0
_level_dict = {
CRITICAL: "CRIT",
ERROR: "ERROR",
WARNING: "WARN",
INFO: "INFO",
DEBUG: "DEBUG",
}
class Logger:
def __init__(self, name):
self.level = NOTSET
self.name = name
def _level_str(self, level):
if level in _level_dict:
return _level_dict[level]
return "LVL" + str(level)
def log(self, level, msg, *args):
if level >= (self.level or _level):
print(("%s:%s:" + msg) % ((self._level_str(level), self.name) + args))
def debug(self, msg, *args):
self.log(DEBUG, msg, *args)
def info(self, msg, *args):
self.log(INFO, msg, *args)
def warning(self, msg, *args):
self.log(WARNING, msg, *args)
def error(self, msg, *args):
self.log(ERROR, msg, *args)
def critical(self, msg, *args):
self.log(CRITICAL, msg, *args)
_level = NOTSET
_loggers = {}
def getLogger(name):
if name in _loggers:
return _loggers[name]
l = Logger(name)
_loggers[name] = l
return l
def basicConfig(level=DEBUG):
global _level
_level = level