2017-06-01 5 views
0

Ich habe ein SiteCustomize-Modul, in dem ich ein Logger-Objekt instanziiert habe. Zur Zeit muss ich eine andere Seite laden.Python Logging funktioniert nicht - Logging-Objekt und sys.modules.pop()

Verliere ich das Logger-Objekt im Moment ich sys.modules.pop ('sitecustomize')? Der Grund, warum ich das frage, ist, weil alle Protokolle nach der modules.pop nichts anzeigen oder schreiben. Wenn ja, wie kann ich mit der Protokollierung fortfahren? Ich habe versucht, es nach dem Pop erneut instanziieren, es hat nicht funktioniert.

Vielen Dank für all die Hilfe und Ansichten im Voraus

logger = logging.getLogger('Blah') 
logger.info('Attempting to current sitecustomize') 
logger.debug('sys.modules %s', sys.modules) 
if sys.modules.pop('sitecustomize',None) is not None: 
    logger = logging.getLogger('Blah') # I tried this 
    logger.info('Attempt Succeeded') 
else: 
    logger.info('Attempt Failed - see debug logs') 

logger.info('Attempting to load next sitecustomize') 

try: 
    abc = imp.find_module('sitecustomize') 
    xyz = imp.load_module('sitecustomize',*abc) 
    sys.modules['sitecustomize'] = xyz 
    logger.info('Attempt Succeeded') 
except ImportError: 
    logger.warning('Unable to find the new sitecustomize') # i know it may be silenced 
except Exception as e: 
    logger.info('Something else %', str(e)) 

Antwort

0

Nun offenbar hatte ich Import alle Module nur wieder vorher importiert I (die nach dem Pop erforderlich sind).