Mercurial > kallithea
view rhodecode/lib/timerproxy.py @ 679:d85b0948e539 rhodecode-0.0.1.0.2
fixed hooks broken symlink issue
fixed python2.5 crash.
fixed #58 missing graph.js bug
Fixed tests to remove the forked repository when building enviroment
version bump
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 11 Nov 2010 15:03:40 +0100 |
parents | 1e757ac98988 |
children | b9ea10d3e419 73434499fa72 |
line wrap: on
line source
from sqlalchemy.interfaces import ConnectionProxy import time from sqlalchemy import log 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(',', ',\n\t')\ .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 __init__(self): super(TimerProxy, self).__init__() self.logging_name = 'timerProxy' self.log = log.instance_logger(self, True) def cursor_execute(self, execute, cursor, statement, parameters, context, executemany): now = time.time() try: self.log.info(">>>>> STARTING QUERY >>>>>") return execute(cursor, statement, parameters, context) finally: total = time.time() - now try: self.log.info(format_sql("Query: %s" % statement % parameters)) except TypeError: self.log.info(format_sql("Query: %s %s" % (statement, parameters))) self.log.info("<<<<< TOTAL TIME: %f <<<<<" % total)