【发布时间】:2017-12-04 05:44:39
【问题描述】:
我想在每个函数上放置一个装饰器来记录函数中发生的所有事情。我制作了一个包装函数和装饰器来用装饰器记录函数。
views.py
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)
问题是此代码中未创建日志文件。此外,它是在另一个项目上创建的,但没有在日志文件(空日志文件)中打印任何内容。我想在日志文件中为正在发生的一切打印一条消息,但这似乎不起作用。请帮忙。
【问题讨论】:
-
请先格式化并正确缩进您的代码。
-
我做到了。谢谢你让我知道。 @影子
标签: python django logging wrapper