Source code for dianna._logging_utils

import logging


[docs] class LoggingContext: """Context manager to Temporarily change logging configuration. From https://docs.python.org/3/howto/logging-cookbook.html Parameters ---------- logger : None, optional Logging instance to change, defaults to root logger. level : None, optional New log level, i.e. `logging.CRITICAL`. handler : None, optional Log handler to use. close : bool, optional Whether to close the handler after use. """ def __init__(self, logger=None, level=None, handler=None, close=True): if not logger: logger = logging.getLogger()
[docs] self.logger = logger
[docs] self.level = level
[docs] self.handler = handler
[docs] self.close = close
[docs] def __enter__(self): if self.level is not None: self.old_level = self.logger.level self.logger.setLevel(self.level) if self.handler: self.logger.addHandler(self.handler)
[docs] def __exit__(self, et, ev, tb): if self.level is not None: self.logger.setLevel(self.old_level) if self.handler: self.logger.removeHandler(self.handler) if self.handler and self.close: self.handler.close()