Tracing tool to help with state machine issues
authorEd Page <eopage@byu.net>
Sun, 10 Jan 2010 03:47:17 +0000 (21:47 -0600)
committerEd Page <eopage@byu.net>
Sun, 10 Jan 2010 03:47:17 +0000 (21:47 -0600)
src/gtk_toolbox.py

index db6c544..8889069 100644 (file)
@@ -253,3 +253,23 @@ def log_exception(logger):
                return wrapper
 
        return log_exception_decorator
+
+
+def trace(logger):
+
+       def trace_decorator(func):
+
+               @functools.wraps(func)
+               def wrapper(*args, **kwds):
+                       try:
+                               logger.info("> %s" % (func.__name__, ))
+                               return func(*args, **kwds)
+                       except Exception:
+                               logger.exception(func.__name__)
+                               raise
+                       finally:
+                               logger.info("< %s" % (func.__name__, ))
+
+               return wrapper
+
+       return trace_decorator