Okay, since I've been asked by OP to elaborate on the discussion in comments regarding why it is a bad idea and what are the alternatives.
Why not:
Once you return the values from the function you should no longer care about what names they had inside. After all, it doesn't matter what the variable was called, all that matters is the value returned. Let's consider the following function:
def ex(foo):
a = 42
if foo:
return a
else:
return 6*7
Does anything outside of the function care whether a was returned or 6*7? Not really. It is 42 either way. If you do care about that difference you should know that inside the function. Outside, you should refer to whatever is the name of the variable you used to catch the return values.
Alternatives:
You said you wanted to do logging without user action, but adding the decorator to a function is not much simpler than explicit logging - and arguably less clear. Again, the same principle applies - you care about the names inside the function - that's where you need to do the logging.