diff pylons_app/lib/timerproxy.py @ 153:a5a3bcc5ee89

Added colored formatter to project, and configs
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 16 May 2010 15:06:20 +0200
parents 0c22a870bb79
children 83c7ee1b5f5c
line wrap: on
line diff
--- a/pylons_app/lib/timerproxy.py	Sat May 15 19:53:23 2010 +0200
+++ b/pylons_app/lib/timerproxy.py	Sun May 16 15:06:20 2010 +0200
@@ -2,6 +2,28 @@
 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 format_sql(sql):
+    sql = color_sql(sql)
+    sql = sql.replace('SELECT', '\n    SELECT \n\t')\
+        .replace('FROM', '\n    FROM')\
+        .replace('ORDER BY', '\n    ORDER BY')\
+        .replace('LIMIT', '\n    LIMIT')\
+        .replace('WHERE', '\n    WHERE')\
+        .replace('AND', '\n    AND')\
+        .replace('LEFT', '\n    LEFT')\
+        .replace('INNER', '\n    INNER')\
+        .replace('INSERT', '\n    INSERT')\
+        .replace('DELETE', '\n    DELETE')
+    return sql
+
 
 class TimerProxy(ConnectionProxy):
     def cursor_execute(self, execute, cursor, statement, parameters, context, executemany):
@@ -12,7 +34,11 @@
         finally:
             total = time.time() - now
             try:
-                log.info("Query: %s" % statement % parameters)
+                log.info(format_sql("Query: %s" % statement % parameters))
             except TypeError:
-                log.info("Query: %s %s" % (statement, parameters))
+                log.info(format_sql("Query: %s %s" % (statement, parameters)))
             log.info("<<<<< TOTAL TIME: %f <<<<<" % total)
+
+
+
+