如何在ruby中编写通用日志包装器?

时间:2015-12-27 21:41:27

标签: ruby wrapper python-decorators

在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

我怎样才能在红宝石中实现这一目标?想要使用方法的名称,参数和输出进行一些通用日志记录,而不必在每个方法中显式调用日志记录。

0 个答案:

没有答案