Exemple #1
0
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)
Exemple #2
0
	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()