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
and500
responses are logged todjango.request
- not any other responses in the4xx
and5xx
range.
500
responses are only logged if they are the result of an uncaught exception. The logging happens indjango.core.handlers.base.handle_uncaught_exception
. If a view manually sets a500
response somewhere, this isn't logged.
- The same was true of
404
responses (they were only logged if an uncaughtHttp404
was raised), until the change made in ticket:26504 inadvertently altered this behaviour. After that change, all404
s 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 only404
s are logged.
Note:
See TracTickets
for help on using tickets.