29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
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() ### |