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