# traced # {{{ def traced(func): def wrapper(*args, **kw): start = time.time() e = None try: ret = func(*args, **kw) except Exception, e: pass time_taken = time.time() - start logger.info( "func=%s, func.__name__=%s, args=%s, kw=%s, return=%s, time=%s" % ( func, func.__name__, args, kw, ret, time_taken ) ) if e: logger.exception(e) raise e return ret return wrapper # }}}