def report_(err, verbose=False): """A report wrapper which reports backtraces for exceptions""" if hasattr(err,"report"): for r in err.report(): yield r elif not isinstance(err,BaseException): yield unicode(err) elif verbose and not getattr(err,"no_backtrace",False): from traceback import format_stack p = "ERROR: " for l in format_exception(err).rstrip("\n").split("\n"): yield p+l p=" : " if hasattr(err,"cmd"): yield " at: "+cmd.file+":"+unicode(cmd.line) if hasattr(err,"within"): for w in err.within: p = " in: " for r in w.report(verbose): yield p+r p = " : " if track_errors(): p = " by: " for rr in format_stack(): for r in rr.rstrip("\n").split("\n"): yield p+r p = " : " else: yield "ERROR: "+unicode(err)
def _slog(self,level,txt): if txt != ".": print >>self.out,LogNames[level]+"> "+txt if opts.debuglevel != "NONE": for level in opts.debuglevel.split(","): if "=" in level: subsys,level = level.split("=") log_level(subsys, globals()[level]) elif level == level.upper() and level in globals(): DoLogger(level=globals()[level]) else: raise KeyError("'%s' is not a debug level." % (level,)) track_errors(opts.stack) if opts.pidfile: pid = open(opts.pidfile,"w") print >>pid, os.getpid() pid.close() def _readcf(): c = Context() try: for f in args: parse(f,ctx=c) except Exception as e: fix_exception(e) process_failure(e) shut_down()