Module pyboiler.logging
Threaded logger with color support
Classes
class logging (name, level)
-
Expand source code
class logging: __slots__ = ("name", "_level", "handlers", "disabled") def __init__(self, name, level): self.name = name self._level = Level.get(level) self.handlers = dict() self.disabled = False @property def level(self): """Get logging level""" return self._level @level.setter def level(self, level): self._level = level @staticmethod def avail_handlers(): return list(handlers.keys()) @staticmethod def avail_levels(): return list(Level) def mk_handler(self, handler, *args, **kwargs): # type: ignore """Add a handler""" if isinstance(handler, str): handler: Handler = handlers[handler.lower()] else: if issubclass(handler, Handler): self.handlers[handler.name()] = handler return if not issubclass(handler, Handler): # type: ignore raise Exception(f"Invalid handler: {handler}") if not handler in self.handlers: self.handlers[handler.name()] = handler(*args, **kwargs) def rm_handler(self, hdlr): """Remove a handler""" if isinstance(hdlr, str): hdlr = handlers[hdlr] self.handlers.pop(hdlr) def ls_handlers(self): """Return all available handlers""" return self.handlers def trace(self, msg): """Log trace""" self._log(Level.TRACE, msg) def debug(self, msg): """Log debug""" self._log(Level.DEBUG, msg) def info(self, msg): """Log info""" self._log(Level.INFO, msg) def warn(self, msg): """Log warn""" self._log(Level.WARN, msg) def error(self, msg): """Log error""" self._log(Level.ERROR, msg) def exception(self, msg): """Log error and raise an exception""" pass def log(self, lvl: Level, msg: str): """This probably shouldn't be used in your code""" self._log(lvl, msg) def _log(self, lvl: Level, msg: str): """logging internal method""" if Level.get(lvl) < self._level: return record = Record(self.name, lvl, msg, depth=3) self.handle(record) def handle(self, record: Record): if self.disabled: return for handler in self.handlers.values(): handler.handle(record)
Static methods
def avail_handlers()
def avail_levels()
Instance variables
var disabled
var handlers
prop level
-
Get logging level
Expand source code
@property def level(self): """Get logging level""" return self._level
var name
Methods
def debug(self, msg)
-
Log debug
def error(self, msg)
-
Log error
def exception(self, msg)
-
Log error and raise an exception
def handle(self, record: Record)
def info(self, msg)
-
Log info
def log(self, lvl: Level, msg: str)
-
This probably shouldn't be used in your code
def ls_handlers(self)
-
Return all available handlers
def mk_handler(self, handler, *args, **kwargs)
-
Add a handler
def rm_handler(self, hdlr)
-
Remove a handler
def trace(self, msg)
-
Log trace
def warn(self, msg)
-
Log warn