Mały middleware zapisujący do pliku wszystkie żadania HTTP i zapytania SQL wraz z czasem ich wykonania.
W głównym katalogu naszego programu(tam gdzie mamy url.py, settings.py itd) tworzymy plik logowaczka.py o poniższej treści:
# logowaczka.py
from django.db import connection
from django.conf import settings
from datetime import datetimeclass Logowaczka(object):
def process_response(self, request, response):
file = open(‘logowaczka.txt’,'a’)
if not request.path_info.startswith(‘/media/’):
# Http
text = ‘-’ * 120
text += ‘nPrzetwarzany URL %s (for %s at %s)’ % (request.path, request.META.get(‘REMOTE_ADDR’), datetime.now())
text += ‘n ID sesji: %s’ % request.COOKIES.get(‘sessionid’)
text += ‘n Parametry: [%s] %s %s’ % (request.method, request.raw_post_data, request.META.get(‘QUERY_STRING’))# SQL
for q in connection.queries:
sql, time = q['sql'], q['time']
text += ‘ > %sn Czas zapytania SQL: %sn’ % (sql, time)print >> file, text
file.close()
return response
W settings.py dodajemy do middleware naszą klasę:
MIDDLEWARE_CLASSES = (
‘django.middleware.common.CommonMiddleware’,
‘django.contrib.sessions.middleware.SessionMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
‘logowaczka.Logowaczka’,)
Tworzymy plik logowaczka.txt:
touch logowaczka.txt
Odpalamy django.