File tree Expand file tree Collapse file tree 2 files changed +17
-0
lines changed
django_datadog_logger/middleware Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Original file line number Diff line number Diff line change 11import logging
22import time
33
4+ from asgiref .sync import iscoroutinefunction , markcoroutinefunction
45from rest_framework .utils .serializer_helpers import ReturnDict
56
67logger = logging .getLogger (__name__ )
78
89
910class RequestLoggingMiddleware :
11+ sync_capable = True
12+ async_capable = True
13+
1014 def __init__ (self , get_response = None ):
1115 self .get_response = get_response
16+ self .async_mode = iscoroutinefunction (self .get_response )
17+ if self .async_mode :
18+ # Mark the class as async-capable, but do the actual switch
19+ # inside __call__ to avoid swapping out dunder methods
20+ markcoroutinefunction (self )
1221
1322 def __call__ (self , request ):
23+ if self .async_mode :
24+ return self .__acall__ (request )
1425 response = self .get_response (request )
1526 self .log_response (request , response )
1627 return response
1728
29+ async def __acall__ (self , request ):
30+ response = await self .get_response (request )
31+ self .log_response (request , response )
32+ return response
33+
1834 def process_response (self , request , response ):
1935 self .log_response (request , response )
2036 return response
Original file line number Diff line number Diff line change 11JSON-log-formatter
22Django
3+ asgiref
34djangorestframework
45backports.zoneinfo ;python_version < "3.9"
You can’t perform that action at this time.
0 commit comments