1""" 2This sub is used to set up logging for pop projects and injects logging 3options into conf making it easy to add robust logging 4""" 5import logging 6 7 8def __init__(hub): 9 """ 10 Set up variables used by the log subsystem 11 """ 12 logging.addLevelName(5, "TRACE") 13 hub.log.LEVEL = { 14 "notset": logging.NOTSET, 15 "trace": 5, 16 "debug": logging.DEBUG, 17 "info": logging.INFO, 18 "warn": logging.WARN, 19 "warning": logging.WARNING, 20 "error": logging.ERROR, 21 "fatal": logging.FATAL, 22 "critical": logging.CRITICAL, 23 } 24 log = logging.getLogger(__name__) 25 26 # These should be overwritten by the integrated logger, but here's a contingency 27 hub.log.INT_LEVEL = log.getEffectiveLevel() 28 hub.log.log = log.log 29 hub.log.trace = lambda msg, *args, **kwargs: log.log(5, msg, *args, **kwargs) 30 hub.log.debug = log.debug 31 hub.log.info = log.info 32 hub.log.critical = log.critical 33 hub.log.warning = log.warning 34 hub.log.error = log.error 35