我在django项目中有一个函数:
class my_class():
def post(self, request, id, format=None):
logger.info(
''.join(
["id"+str(request.get('id')),
"name"+str(request.get('name')),
"grade"+str(request.get('grade'))]
)
)
row = Student(
id = request.get('id'),
name = request.get('name'),
grade = request.get('grade')
)
row.save()
现在我希望在我的这个函数周围有一个装饰器( @logger ),它记录了所有内容(logger.info)。即我只应在函数定义上方添加@logger,并可以记录所有请求体。有人可以帮助我,我怎么能这样做。我将请求正文从post
发送到装饰器时遇到问题。
答案 0 :(得分:1)
def logger(func):
def decorator(request, *args, **kwargs):
# log here
return func(request, *args, **kwargs)
return decorator
答案 1 :(得分:0)
我想这应该足够了,您可能还想阅读this。
class Logger(object):
def __init__(self, f):
self.f = f
def __call__(self, request, *args, **kwargs):
logger.info(request.GET)
self.f(request, *args, **kwargs)