如何记录传递给函数的数据项?

时间:2012-03-07 18:56:27

标签: python logging decorator

我有一个方法(从互联网上选择),它允许我记录传递给方法的所有参数和方法的返回值。但是,使用OOP模型,可以将数据项传递给函数以及从函数内访问的功能。我的问题是如何记录函数访问并记录它们的数据项(例如self.data项),就在函数开始之前和函数结束之后。这是示例代码。

def save_to_log (methodname, method_obj):
    def method(self,*argl,**argd):
        args = []
        for item in argl:
            args.append('%s' % str(item))
        for key,item in argd.items():
            args.append('%s=%s' % (key,str(item)))
        argstr = ','.join(args)
        print >> log,"%s%s.%s(%s) " % (self.__class__.__name__, methodname, argstr)
        returnval = method_obj(self, *argl,**argd)
        print >> log,'%s:'% str(returnval)
        return returnval
    return method

0 个答案:

没有答案