在Python中,我会这样做:
def with_logging(func):
def inner(*args, **kwargs):
print "Method: %s, Arguments: %s, %s" % (func.__name__, args, kwargs)
res = func(*args, **kwargs)
print "Result: %s" % (res)
return res
return inner
并获得:
>>> @with_logging
... def f(a, b):
... return a + b
...
>>> f(2, 9)
Method: f, Arguments: (2, 9), {}
Result: 11
11
我怎样才能在红宝石中实现这一目标?想要使用方法的名称,参数和输出进行一些通用日志记录,而不必在每个方法中显式调用日志记录。