带装饰器的python/django日志记录
我想在每个函数上放置一个decorator来记录函数中发生的一切。我制作了一个包装器函数和decorator,用decorator记录函数 视图.py带装饰器的python/django日志记录,python,django,logging,wrapper,Python,Django,Logging,Wrapper,我想在每个函数上放置一个decorator来记录函数中发生的一切。我制作了一个包装器函数和decorator,用decorator记录函数 视图.py def func_detail(func): @wraps(func) def func_wrapper(*args, **kwargs): r = func(*args, **kwargs) logging.getLogger(__name__) logging.basicC
def func_detail(func):
@wraps(func)
def func_wrapper(*args, **kwargs):
r = func(*args, **kwargs)
logging.getLogger(__name__)
logging.basicConfig(filename='test.log', filemode='a',
format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
datefmt='%H:%M:%S',
level=logging.DEBUG)
return r
return func_wrapper
class UsersViewSet(viewsets.ViewSet):
@func_detail
def list(self, request):
queryset = Mytable.objects.all()
if request.GET.get('name'):
queryset = queryset.filter(name=request.GET.get('name'))
serializer = CheckSerializer(queryset, many=True)
logging.info("GET request and returned response")
return Response(serializer.data)
问题是此代码中没有创建日志文件。另外,它是在另一个项目上创建的,但没有在日志文件(空日志文件)中打印任何内容。我想在日志文件中打印所有正在发生的事情的消息,但这似乎不起作用。Plz帮助。装饰器内部函数应该返回带有args和kwargs的外部函数,您的装饰器问题将得到解决,但另一个问题是Django无法stdr此装饰视图函数的控制台输出
def func_detail(func):
@wraps(func)
def func_wrapper(*args, **kwargs):
logging.getLogger(__name__)
----
return func(*args, **kwargs)
return func_wrapper
请从格式化和正确缩进代码开始。我做到了。谢谢你让我知道@谢谢你!我还必须跟踪发生在模型上的更改或修改,以及更改为什么的内容。。我正在使用audit_log,但它并没有真正的帮助。我建议使用Django logger作为模型和有关日志的所有内容…谢谢,我会看到这一点并让您知道!