Question is much the same as this, however I'm wanting django to log it's verbose request information to my logging.FileHandler
- ie rather than having to look at my webservers logs. I've tried and failed to setup the default logger django.requests
to write something other than 4xx and 5xx
request information to the handlers.
So the conclusion I've come to after going through the docs and fiddling with the loggers and levels is that django does not actually make a lot of log statements - so I'm looking to confirm that django does not internally log non error scenarios for requests.
I can't say I did an exhaustive search, but from what I can see at django/core/handlers/base.py
of django 1.4.1, the django.request
logger is indeed only used for warnings and error conditions (4xx/5xx).
That said, it's trivial to write middleware that will do all manner of logging for you. Something very simple to get you started could be just:
from time import time
from logging import getLogger
class LoggingMiddleware(object):
def __init__(self):
# arguably poor taste to use django's logger
self.logger = getLogger('django.request')
def process_request(self, request):
request.timer = time()
return None
def process_response(self, request, response):
self.logger.info(
'[%s] %s (%.1fs)',
response.status_code,
request.get_full_path(),
time() - request.timer
)
return response
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With