While learning how to use the REST Framework and the authentication mechanisms, I'm looking for a way to log the accesses to the API views for debugging purpose.
Inspired by this question <http://stackoverflow.com/questions/15578946/logging-requests-to-django-rest-framework> and the errors that came with it, I overloaded the initial method and got this: class ItemViewSet(viewsets.ModelViewSet): model = Item queryset = Item.objects.all() serializer_class = ItemSerializer permission_classes = [permissions.IsAuthenticated,] def initial(self, request, *args, **kwargs): log_data = { 'user': request.user.pk, 'remote_address': request.META['REMOTE_ADDR'], 'request_method': request.method, 'request_path': request.get_full_path(), 'request_body': request.data , 'request_query_params': request.query_params , 'request_auth': request.auth, } if not os.path.exists('log'): os.makedirs('log') with open('log/logging.json', 'w') as f: json.dump(log_data, f, sort_keys=True, indent=4) return viewsets.ModelViewSet.initial(self, request, *args, **kwargs) With this, I indeed get a file created when I run a unit test making a get request on the view or when I access the view with a browser. However, when I make a curl request, it reaches the view, gets a response but the request is not logged. What is wrong with the curl request? How can I log all info related to the request (headers, content...)? Thank you for helping. -- You received this message because you are subscribed to the Google Groups "Django REST framework" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
