Mercurial > kallithea
view pylons_app/lib/timerproxy.py @ 242:5da4ef115006
Added lastlogin to user after login, model db update
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 30 May 2010 22:08:54 +0200 |
parents | 5ba66bb4ca95 |
children | 298546182b41 |
line wrap: on
line source
from sqlalchemy.interfaces import ConnectionProxy import time import logging log = logging.getLogger('timerproxy') BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38) def color_sql(sql): COLOR_SEQ = "\033[1;%dm" COLOR_SQL = YELLOW normal = '\x1b[0m' return COLOR_SEQ % COLOR_SQL + sql + normal def one_space_trim(s): if s.find(" ") == -1: return s else: s = s.replace(' ', ' ') return one_space_trim(s) def format_sql(sql): sql = color_sql(sql) sql = sql.replace('\n', '') sql = one_space_trim(sql) sql = sql\ .replace('SELECT', '\n\tSELECT \n\t')\ .replace('UPDATE', '\n\tUPDATE \n\t')\ .replace('DELETE', '\n\tDELETE \n\t')\ .replace('FROM', '\n\tFROM')\ .replace('ORDER BY', '\n\tORDER BY')\ .replace('LIMIT', '\n\tLIMIT')\ .replace('WHERE', '\n\tWHERE')\ .replace('AND', '\n\tAND')\ .replace('LEFT', '\n\tLEFT')\ .replace('INNER', '\n\tINNER')\ .replace('INSERT', '\n\tINSERT')\ .replace('DELETE', '\n\tDELETE') return sql 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(format_sql("Query: %s" % statement % parameters)) except TypeError: log.info(format_sql("Query: %s %s" % (statement, parameters))) log.info("<<<<< TOTAL TIME: %f <<<<<" % total)