File tree Expand file tree Collapse file tree 2 files changed +12
-1
lines changed
google/cloud/logging_v2/handlers Expand file tree Collapse file tree 2 files changed +12
-1
lines changed Original file line number Diff line number Diff line change 24
24
25
25
from google .cloud .logging_v2 .handlers .middleware .request import _get_django_request
26
26
27
+ _DJANGO_CONTENT_LENGTH = "CONTENT_LENGTH"
27
28
_DJANGO_TRACE_HEADER = "HTTP_X_CLOUD_TRACE_CONTEXT"
28
29
_DJANGO_USERAGENT_HEADER = "HTTP_USER_AGENT"
29
30
_DJANGO_REMOTE_ADDR_HEADER = "REMOTE_ADDR"
@@ -93,11 +94,18 @@ def get_request_data_from_django():
93
94
94
95
if request is None :
95
96
return None , None
97
+
98
+ # convert content_length to int if it exists
99
+ content_length = None
100
+ try :
101
+ content_length = int (request .META .get (_DJANGO_CONTENT_LENGTH ))
102
+ except (ValueError , TypeError ):
103
+ content_length = None
96
104
# build http_request
97
105
http_request = {
98
106
"requestMethod" : request .method ,
99
107
"requestUrl" : request .build_absolute_uri (),
100
- "requestSize" : len ( request . body ) ,
108
+ "requestSize" : content_length ,
101
109
"userAgent" : request .META .get (_DJANGO_USERAGENT_HEADER ),
102
110
"remoteIp" : request .META .get (_DJANGO_REMOTE_ADDR_HEADER ),
103
111
"referer" : request .META .get (_DJANGO_REFERER_HEADER ),
Original file line number Diff line number Diff line change @@ -172,6 +172,9 @@ def test_http_request_populated(self):
172
172
HTTP_USER_AGENT = expected_agent ,
173
173
HTTP_REFERER = expected_referrer ,
174
174
)
175
+ # ensure test passes even after request has been read
176
+ # context: https://github.com/googleapis/python-logging/issues/159
177
+ django_request .read ()
175
178
176
179
middleware = request .RequestMiddleware (None )
177
180
middleware .process_request (django_request )
You can’t perform that action at this time.
0 commit comments