annotate pylons_app/lib/timerproxy.py @ 483:a9e50dce3081 celery

Removed config names from whoosh and celery, celery is now configured based on the config name it's using on celeryconfig. And whoosh uses it's own logger configured just for whoosh Test creates a fresh whoosh index now, for more accurate checks fixed tests for searching
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 17 Sep 2010 22:54:30 +0200
parents 298546182b41
children a5a17000e45b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
49
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
1 from sqlalchemy.interfaces import ConnectionProxy
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
2 import time
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
3 import logging
90
0c22a870bb79 logging proxy update
Marcin Kuzminski <marcin@python-works.com>
parents: 49
diff changeset
4 log = logging.getLogger('timerproxy')
153
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
5 BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38)
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
6
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
7 def color_sql(sql):
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
8 COLOR_SEQ = "\033[1;%dm"
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
9 COLOR_SQL = YELLOW
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
10 normal = '\x1b[0m'
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
11 return COLOR_SEQ % COLOR_SQL + sql + normal
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
12
172
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
13 def one_space_trim(s):
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
14 if s.find(" ") == -1:
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
15 return s
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
16 else:
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
17 s = s.replace(' ', ' ')
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
18 return one_space_trim(s)
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
19
153
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
20 def format_sql(sql):
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
21 sql = color_sql(sql)
172
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
22 sql = sql.replace('\n', '')
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
23 sql = one_space_trim(sql)
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
24 sql = sql\
462
298546182b41 more test suites on login, fixed strange detached instance bug found during in tests.
Marcin Kuzminski <marcin@python-works.com>
parents: 236
diff changeset
25 .replace(',',',\n\t')\
172
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
26 .replace('SELECT', '\n\tSELECT \n\t')\
236
5ba66bb4ca95 timerprox sqlformatting update for update and delete keywords
Marcin Kuzminski <marcin@python-works.com>
parents: 172
diff changeset
27 .replace('UPDATE', '\n\tUPDATE \n\t')\
5ba66bb4ca95 timerprox sqlformatting update for update and delete keywords
Marcin Kuzminski <marcin@python-works.com>
parents: 172
diff changeset
28 .replace('DELETE', '\n\tDELETE \n\t')\
172
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
29 .replace('FROM', '\n\tFROM')\
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
30 .replace('ORDER BY', '\n\tORDER BY')\
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
31 .replace('LIMIT', '\n\tLIMIT')\
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
32 .replace('WHERE', '\n\tWHERE')\
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
33 .replace('AND', '\n\tAND')\
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
34 .replace('LEFT', '\n\tLEFT')\
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
35 .replace('INNER', '\n\tINNER')\
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
36 .replace('INSERT', '\n\tINSERT')\
83c7ee1b5f5c improved timerproxy with sqllogging, and new way of sqlformat queries
Marcin Kuzminski <marcin@python-works.com>
parents: 153
diff changeset
37 .replace('DELETE', '\n\tDELETE')
153
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
38 return sql
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
39
49
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
40
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
41 class TimerProxy(ConnectionProxy):
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
42 def cursor_execute(self, execute, cursor, statement, parameters, context, executemany):
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
43 now = time.time()
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
44 try:
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
45 log.info(">>>>> STARTING QUERY >>>>>")
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
46 return execute(cursor, statement, parameters, context)
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
47 finally:
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
48 total = time.time() - now
90
0c22a870bb79 logging proxy update
Marcin Kuzminski <marcin@python-works.com>
parents: 49
diff changeset
49 try:
153
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
50 log.info(format_sql("Query: %s" % statement % parameters))
90
0c22a870bb79 logging proxy update
Marcin Kuzminski <marcin@python-works.com>
parents: 49
diff changeset
51 except TypeError:
153
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
52 log.info(format_sql("Query: %s %s" % (statement, parameters)))
49
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
53 log.info("<<<<< TOTAL TIME: %f <<<<<" % total)
153
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
54
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
55
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
56
a5a3bcc5ee89 Added colored formatter to project, and configs
Marcin Kuzminski <marcin@python-works.com>
parents: 90
diff changeset
57