import functools

def logged(fun):
    @functools.wraps(fun)
    def _inner(*args, **kwargs):
        print 'Function %s entry' % fun.__name__
        fun(*args, **kwargs)
        print 'Function %s exit' % fun.__name__
    return _inner

@logged
def foo():
    print 'Doing something'

foo()

