+ 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.iteritems() if not k.startswith("_")}
+ # On évite d'envoyer truckLoadsOfShit
+ d = {k: (v if len(str(v)) < 800
+ else str(v)[:400] + "*" * 40 + "TRUNCATED OBJECT" + "*" * 40 + str(v)[-400:])
+ for (k,v) in d.iteritems()}
+ errmsg += "\nContexte : %s\n\n" % (pprint.pformat(d))
+ print errmsg