from sqlalchemy.interfaces import ConnectionProxy
import time
import logging
log = logging.getLogger('timerproxy')
class TimerProxy(ConnectionProxy):
def cursor_execute(self, execute, cursor, statement, parameters, context, executemany):
now = time.time()
try:
log.info(">>>>> STARTING QUERY >>>>>")
return execute(cursor, statement, parameters, context)
finally:
total = time.time() - now
try:
log.info("Query: %s" % statement % parameters)
except TypeError:
log.info("Query: %s %s" % (statement, parameters))
log.info("<<<<< TOTAL TIME: %f <<<<<" % total)