import functools, logging log = logging.getLogger('root') log.setLevel(logging.ERROR) # DEBUG > INFO > WARNING > ERROR > CRITICAL logging.basicConfig( format='[%(asctime)s] %(levelname)s @ %(module)s.%(funcName)s()#%(lineno)d: %(message)s' ) # ### BEGIN ### Log ### logger_reset() ### # https://realpython.com/primer-on-python-decorators/ # Updated 2021-09-29 def logger_reset(func): # log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.debug(locals()) @functools.wraps(func) def wrapper(*args, **kwargs): # log.info(f'Function "{func.__name__}()" called. Saving logger level... Log level: {log.level}') init_log_level = log.level returned_result = func(*args, **kwargs) log.info(f'*** Function "{func.__name__}()" finished. Resetting logger level to level: {log.level} ***') log.setLevel(init_log_level) # log.info(f'Reset logger level. Log level: {log.level}') # return func(*args, **kwargs) return returned_result return wrapper # ### END ### Log ### logger_reset() ###