Source code for cellsystem.logging.core.multi
from .log import Log
[docs]class MultiLog(Log):
'An aggregate of logs.'
def __init__(self):
self.logs = dict()
# ---
def __getitem__(self, item):
return self.logs[item]
# ---
def __delitem__(self, item):
del self.logs[item]
# ---
[docs] def register(self, log, name):
'Register a named log entity.'
# Overwriting is fatal
if name in self.logs:
raise ValueError("Log with name '{}' already registered.".format(name))
self.logs[name] = log
# ---
[docs] def preparefor(self, actionname, *args, **kwargs):
'Save previous state before the entity takes the given action.'
for name,log in self.logs.items():
log.preparefor(actionname, *args, **kwargs)
# ---
[docs] def log(self, actionname, *args, **kwargs):
'Log the action.'
for name,log in self.logs.items():
log.log(actionname, *args, **kwargs)
# ---
# --- MultiLog