Updating from Dialcentral
[theonering] / src / gtk_toolbox.py
index da9accc..9ef914f 100644 (file)
@@ -12,6 +12,9 @@ import threading
 import Queue
 
 
+_moduleLogger = logging.getLogger("gtk_toolbox")
+
+
 @contextlib.contextmanager
 def flock(path, timeout=-1):
        WAIT_FOREVER = -1
@@ -137,7 +140,7 @@ def comap(function, target):
                        mappedItem = function(*item)
                        target.send(mappedItem)
                except Exception, e:
-                       logging.exception("Forwarding exception!")
+                       _moduleLogger.exception("Forwarding exception!")
                        target.throw(e.__class__, str(e))
 
 
@@ -216,3 +219,19 @@ def safecall(f, errorDisplay=None, default=None, exception=Exception):
                                errorDisplay.push_exception(e)
                        return default
        return _safecall
+
+
+def log_exception(logger):
+
+       def log_exception_decorator(func):
+
+               @functools.wraps(func)
+               def wrapper(*args, **kwds):
+                       try:
+                               return func(*args, **kwds)
+                       except Exception:
+                               logger.exception(func.__name__)
+
+               return wrapper
+
+       return log_exception_decorator
\ No newline at end of file