Mercurial > kallithea
diff rhodecode/lib/colored_formatter.py @ 1186:b9ea10d3e419 beta
timperproxy will just measure the time of queries, and formatting will be handled by the new sql_formatter of queries from sqlalchemy itself. Updated ini files for new way logging
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 28 Mar 2011 22:13:21 +0200 |
parents | 1e757ac98988 |
children | 6832ef664673 |
line wrap: on
line diff
--- a/rhodecode/lib/colored_formatter.py Mon Mar 28 21:28:16 2011 +0200 +++ b/rhodecode/lib/colored_formatter.py Mon Mar 28 22:13:21 2011 +0200 @@ -14,8 +14,35 @@ 'WARNING': CYAN, # level 30 'INFO': GREEN, # level 20 'DEBUG': BLUE, # level 10 + 'SQL' : YELLOW } +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 = 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 ColorFormatter(logging.Formatter): def __init__(self, *args, **kwargs): @@ -26,13 +53,31 @@ """ Changes record's levelname to use with COLORS enum """ - + levelname = record.levelname start = COLOR_SEQ % (COLORS[levelname]) def_record = logging.Formatter.format(self, record) end = RESET_SEQ - + colored_record = start + def_record + end return colored_record -logging.ColorFormatter = ColorFormatter + +class ColorFormatterSql(logging.Formatter): + + def __init__(self, *args, **kwargs): + # can't do super(...) here because Formatter is an old school class + logging.Formatter.__init__(self, *args, **kwargs) + + def format(self, record): + """ + Changes record's levelname to use with COLORS enum + """ + + start = COLOR_SEQ % (COLORS['SQL']) + def_record = format_sql(logging.Formatter.format(self, record)) + end = RESET_SEQ + + colored_record = start + def_record + end + return colored_record +