@@ -191,7 +191,7 @@ def _remove_excluded_fields(self, message, extra_fields):
191
191
# ----------------------------------------------------------------------
192
192
def _move_extra_record_fields_to_prefix (self , message ):
193
193
"""
194
- Anythng added by the "extra" keyword in the logging call will be moved into the
194
+ Anything added by the "extra" keyword in the logging call will be moved into the
195
195
configured "extra" prefix. This way the event in Logstash will be clean and any extras
196
196
will be paired together in the configured extra prefix.
197
197
If not extra prefix is configured, the message will be kept as is.
@@ -240,7 +240,7 @@ def _get_extra_fields(self, record):
240
240
extra_fields ['req_useragent' ] = request .META .get ('HTTP_USER_AGENT' , '<none>' )
241
241
extra_fields ['req_remote_address' ] = request .META .get ('REMOTE_ADDR' , '<none>' )
242
242
extra_fields ['req_host' ] = self ._try_to_get_host_from_remote (request )
243
- extra_fields ['req_uri' ] = request . get_raw_uri ( )
243
+ extra_fields ['req_uri' ] = self . _try_to_get_full_request_uri ( request )
244
244
extra_fields ['req_user' ] = str (request_user )
245
245
extra_fields ['req_method' ] = request .META .get ('REQUEST_METHOD' , '' )
246
246
extra_fields ['req_referer' ] = request .META .get ('HTTP_REFERER' , '' )
@@ -290,6 +290,14 @@ def _try_to_get_host_from_remote(self, request):
290
290
else :
291
291
return request .META ['SERVER_NAME' ]
292
292
293
+ # ----------------------------------------------------------------------
294
+ def _try_to_get_full_request_uri (self , request ):
295
+ try :
296
+ return request .build_absolute_uri ()
297
+ except Exception :
298
+ # build_absolute_uri() may fail with DisallowedHost errors and maybe more
299
+ return None
300
+
293
301
294
302
class FlaskLogstashFormatter (LogstashFormatter ):
295
303
0 commit comments