J'ai écrit ce morceau de code pour obtenir l'espace de nom d'un document XML. J'essaie de gérer l'exception et d'écrire une trace complète dans le journal. Cependant, trace n'est pas écrit avec un message personnalisé dans le journal (même si je peux le voir à l'écran).Configuration du gestionnaire d'enregistreur Python pour la journalisation des exceptions
Je crois qu'il me manque quelque chose dans Logger handler config. Y a-t-il une configuration spécifique à laquelle nous devons faire face? ci-dessous est ma config logger jusqu'à présent.
Toute aide sera appréciée.!
logger = logging.getLogger(__name__)
hdlr = logging.FileHandler(r'C:\link.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
def get_ns(xmlroot):
"""Retrieve XML Document Namespace """
try:
logger.info("Trying to get XML namespace detail")
nsmap = xmlroot.nsmap.copy()
logger.info("Creating XML Namespace Object, {0}".format(nsmap))
nsmap['xmlns'] = nsmap.pop(None)
except (KeyError, SystemExit):
logging.exception("XML files does not contain namespace, Halting Program! ")
sys.exit()
else:
for ns in nsmap.values():
logger.info("Retrieved XML Namespace {0}".format(ns))
return ns
sortie sur l'écran:
ERROR:root:XML files does not contain namespace, Halting Program!
Traceback (most recent call last):
File "C:\link.log", line 28, in get_ns
nsmap['xmlns'] = nsmap.pop(None)
KeyError: None
Vous pouvez éditer votre question pour contenir le retraçage que vous voyez à l'écran? – Odysseas
@Odysseas: J'ai mis à jour la question avec la sortie d'écran. – tgcloud