--- /dev/null
+from datetime import datetime
+import functools
+
+def invokation_logged(func):
+ @functools.wraps(func)
+ def wrapper(*args, **kwargs):
+ now = datetime.now()
+ timestamp = now.strftime("%d-%b-%Y (%H:%M:%S.%f)")
+ print("%s(%s): Entered function" % (func.__name__, timestamp))
+ ret = func(*args, **kwargs)
+ now = datetime.now()
+ timestamp = now.strftime("%d-%b-%Y (%H:%M:%S.%f)")
+ print("%s(%s): Exited function" % (func.__name__, timestamp))
+ return ret
+ return wrapper
+
+# Test
+#@invokation_logged
+#def f(x):
+# print(x * x)
+# return x * x
+#
+#q = f(10)
+#print(q)