Make multiple pyocf loggers viable

Signed-off-by: Jan Musial <jan.musial@intel.com>
This commit is contained in:
Jan Musial 2021-09-09 10:23:28 +02:00
parent 441e3c20d7
commit 8f47cfa5bf

View File

@ -20,9 +20,7 @@ import weakref
from ..ocf import OcfLib from ..ocf import OcfLib
logger = logging.getLogger("pyocf") logging.basicConfig(level=logging.DEBUG, handlers=[logging.NullHandler()])
logger.setLevel(logging.DEBUG)
class LogLevel(IntEnum): class LogLevel(IntEnum):
EMERG = 0 EMERG = 0
@ -71,7 +69,7 @@ class LoggerPriv(Structure):
class Logger(Structure): class Logger(Structure):
_instances_ = weakref.WeakValueDictionary() _instances_ = weakref.WeakValueDictionary()
_fields_ = [("logger", c_void_p)] _fields_ = [("_logger", c_void_p)]
def __init__(self): def __init__(self):
self.ops = LoggerOps( self.ops = LoggerOps(
@ -118,23 +116,25 @@ class Logger(Structure):
class DefaultLogger(Logger): class DefaultLogger(Logger):
def __init__(self, level: LogLevel = LogLevel.WARN): def __init__(self, level: LogLevel = LogLevel.WARN, name: str = ""):
super().__init__() super().__init__()
self.level = level self.level = level
self.name = name
self.logger = logging.getLogger(name)
ch = logging.StreamHandler() ch = logging.StreamHandler()
fmt = logging.Formatter( fmt = logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s" "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
) )
ch.setFormatter(fmt) ch.setFormatter(fmt)
ch.setLevel(LevelMapping[level]) ch.setLevel(LevelMapping[level])
logger.addHandler(ch) self.logger.addHandler(ch)
def log(self, lvl: int, msg: str): def log(self, lvl: int, msg: str):
logger.log(LevelMapping[lvl], msg) self.logger.log(LevelMapping[lvl], msg)
def close(self): def close(self):
logger.handlers = [] self.logger.handlers = []
class FileLogger(Logger): class FileLogger(Logger):