Adding DEBUG_QUERIES_SUMMARY_ONLY to assist db introspection without the verbosity.

This commit is contained in:
Samuel Clay 2021-07-15 16:50:54 -04:00
parent 4616f939b1
commit c055656869
4 changed files with 21 additions and 10 deletions

View file

@ -154,7 +154,7 @@ class SQLLogToConsoleMiddleware:
query['sql'] = re.sub(r'INSERT', '~FGINSERT', query['sql'])
query['sql'] = re.sub(r'UPDATE', '~FY~SBUPDATE', query['sql'])
query['sql'] = re.sub(r'DELETE', '~FR~SBDELETE', query['sql'])
if settings.DEBUG and settings.DEBUG_QUERIES:
if settings.DEBUG and settings.DEBUG_QUERIES and not getattr(settings, 'DEBUG_QUERIES_SUMMARY_ONLY', False):
t = Template("{% for sql in sqllog %}{% if not forloop.first %} {% endif %}[{{forloop.counter}}] ~FC{{sql.time}}s~FW: {{sql.sql|safe}}{% if not forloop.last %}\n{% endif %}{% endfor %}")
logging.debug(t.render(Context({
'sqllog': queries,

View file

@ -21,7 +21,8 @@ DOCKERBUILD = True
DEBUG = False
DEBUG = True
DEBUG_ASSETS = True
# DEBUG_QUERIES = True
DEBUG_QUERIES = True
DEBUG_QUERIES_SUMMARY_ONLY = True
MEDIA_URL = '/media/'
IMAGES_URL = '/imageproxy'
SECRET_KEY = 'YOUR SECRET KEY'

View file

@ -119,6 +119,7 @@ MIDDLEWARE = (
'apps.profile.middleware.ServerHostnameMiddleware',
'oauth2_provider.middleware.OAuth2TokenMiddleware',
# 'debug_toolbar.middleware.DebugToolbarMiddleware',
'utils.request_introspection_middleware.DumpRequestMiddleware',
'apps.profile.middleware.DBProfilerMiddleware',
'apps.profile.middleware.SQLLogToConsoleMiddleware',
'utils.mongo_raw_log_middleware.MongoDumpMiddleware',
@ -764,10 +765,6 @@ accept_content = ['pickle', 'json', 'msgpack', 'yaml']
JAMMIT = jammit.JammitAssets(ROOT_DIR)
if DEBUG:
MIDDLEWARE += ('utils.request_introspection_middleware.DumpRequestMiddleware',)
# MIDDLEWARE += ('utils.exception_middleware.ConsoleExceptionMiddleware',)
# =======
# = AWS =
# =======

View file

@ -15,13 +15,26 @@ class DumpRequestMiddleware:
else:
logging.debug(" ---> ~FC%s ~SN~FK~BC%s~BT~ST" % (request.method, request.path))
def process_response(self, request, response):
if hasattr(request, 'sql_times_elapsed'):
logging.debug(" ---> ~SN~FCDB times: ~FYsql: ~SB%.3f~SNs ~SN~FMmongo: ~SB%.3f~SNs ~SN~FCredis: ~SB%.3f~SNs" % (
request.sql_times_elapsed['sql'],
request.sql_times_elapsed['mongo'],
request.sql_times_elapsed['redis'],
))
return response
def __init__(self, get_response=None):
self.get_response = get_response
def __call__(self, request):
self.process_request(request)
response = self.get_response(request)
response = None
if hasattr(self, 'process_request'):
response = self.process_request(request)
if not response:
response = self.get_response(request)
if hasattr(self, 'process_response'):
response = self.process_response(request, response)
return response