Opened 8 years ago

Last modified 7 years ago

#26688 closed Bug

Inconsistent logging of 5xx and 4xx requests to django.request — at Initial Version

Reported by: Samir Shah Owned by: nobody
Component: HTTP handling Version: dev
Severity: Normal Keywords:
Cc: seocam@… Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

The documentation for django.request says:

Log messages related to the handling of requests. 5XX responses are raised as ERROR messages; 4XX responses are raised as WARNING messages.

The actual behaviour is not quite consistent with this:

  • Only 404 and 500 responses are logged to django.request - not any other responses in the 4xx and 5xx range.
  • 500 responses are only logged if they are the result of an uncaught exception. The logging happens in django.core.handlers.base.handle_uncaught_exception. If a view manually sets a 500 response somewhere, this isn't logged.
  • The same was true of 404 responses (they were only logged if an uncaught Http404 was raised), until the change made in ticket:26504 inadvertently altered this behaviour. After that change, all 404s are logged regardless of how they are generated.

I would be happy to submit a patch that addresses this but would like some guidance on what the best solution is. My initial thoughts are:

  • I think Django should log all 5xx responses, regardless of how they were generated. This would mean refactoring the logic that does this logging.
  • Either log all 4xx responses or change the documentation to say that only 404s are logged.

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top