From: Vincent Le Gallic Date: Tue, 28 Jan 2014 03:42:41 +0000 (+0100) Subject: [server] Meilleur débugging des exceptions X-Git-Url: http://gitweb.pimeys.fr/?a=commitdiff_plain;h=42caed7330ea14197ebd316a0b1bb49568b4aa79;p=today.git [server] Meilleur débugging des exceptions --- diff --git a/today_server.py b/today_server.py index abff785..882b43b 100755 --- a/today_server.py +++ b/today_server.py @@ -18,6 +18,8 @@ import sys import urllib import json import traceback +import inspect +import pprint os.chdir('/home/vincent/scripts/today/') sys.path.append("/home/vincent/scripts/dtc/") import dtc @@ -182,8 +184,14 @@ def fetch_all(): try: news[k] = f() except Exception as e: - print "Erreur à la récupération de %s :" % k - traceback.print_exc() + errmsg = "Erreur à la récupération de %s :\n" % k + errmsg += traceback.format_exc() + # On dumpe le contenu local de la mémoire au moment de l'exception + fobj = inspect.trace()[-1][0] + # On fait un peu de ménage + d = {k:v for (k,v) in fobj.f_locals.items() if not k.startswith("_")} + errmsg += "\nContexte : %s\n\n" % (pprint.pformat(d)) + print errmsg return news def sync():