모든 함수에 데코레이터를 배치하여 함수에서 발생하는 모든 것을 기록하고 싶습니다. 필자는 래퍼 함수와 데코레이터를 사용하여 데코레이터로 함수를 로깅했다.데코레이터로 파이썬/장고 로깅
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)
문제
views.py 로그 파일이 코드에서 생성되지이다. 또한 다른 프로젝트에서 생성되었지만 로그 파일 (빈 로그 파일)에 아무 것도 인쇄하지 않았습니다. 로그 파일에 모든 일이 발생하면 메시지를 인쇄하고 싶지만 작동하지 않는 것 같습니다. Plz 도움.
코드를 포맷하고 올바르게 들여 쓰기를 시작하십시오. – Shadow
나는했다. 알려 줘서 고마워. @ 섀도우 –