Source code for weblib.logs

import logging


[docs]def default_logging(grab_log='/tmp/grab.log', level=logging.DEBUG, mode='a', propagate_network_logger=False, network_log='/tmp/grab.network.log'): """ Customize logging output to display all log messages except grab network logs. Redirect grab network logs into file. """ logging.basicConfig(level=level) network_logger = logging.getLogger('grab.network') network_logger.propagate = propagate_network_logger if network_log: hdl = logging.FileHandler(network_log, mode) network_logger.addHandler(hdl) network_logger.setLevel(level) grab_logger = logging.getLogger('grab') if grab_log: hdl = logging.FileHandler(grab_log, mode) grab_logger.addHandler(hdl) grab_logger.setLevel(level)
#LOGGING_BUFFER = defaultdict(list) #GLOBAL = {'key': None} #class MemoryHandler(logging.Handler): #def emit(self, record): #LOGGING_BUFFER[GLOBAL['key']].append(self.format(record)) #logger = logging.getLogger('calculate') #logger.addHandler(MemoryHandler()) #def save_logging(func): #def inner(*args, **kwargs): #key = str(time.time()) + str(id({})) #GLOBAL['key'] = key #try: #result = func(*args, **kwargs) #result['logs'] = copy(LOGGING_BUFFER[key]) #finally: #if key in LOGGING_BUFFER: #del LOGGING_BUFFER[key] #return result #return inner