##// END OF EJS Templates
merge beta fixes into stable
merge beta fixes into stable

File last commit:

r1512:bf263968 merge default
r1518:55856097 merge default
Show More
colored_formatter.py
85 lines | 2.2 KiB | text/x-python | PythonLexer
/ rhodecode / lib / colored_formatter.py
renamed project to rhodecode
r547
import logging
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38)
source code cleanup: remove trailing white space, normalize file endings
r1203 # Sequences
renamed project to rhodecode
r547 RESET_SEQ = "\033[0m"
Removed bolds from colored logs (better readability)
r1391 COLOR_SEQ = "\033[0;%dm"
renamed project to rhodecode
r547 BOLD_SEQ = "\033[1m"
COLORS = {
pep8ify
r1307 'CRITICAL': MAGENTA,
'ERROR': RED,
'WARNING': CYAN,
'INFO': GREEN,
'DEBUG': BLUE,
'SQL': YELLOW
renamed project to rhodecode
r547 }
pep8ify
r1307
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
r1186 def one_space_trim(s):
if s.find(" ") == -1:
return s
else:
s = s.replace(' ', ' ')
return one_space_trim(s)
pep8ify
r1307
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
r1186 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
pep8ify
r1307
renamed project to rhodecode
r547 class ColorFormatter(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
"""
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
r1186
renamed project to rhodecode
r547 levelname = record.levelname
start = COLOR_SEQ % (COLORS[levelname])
def_record = logging.Formatter.format(self, record)
end = RESET_SEQ
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
r1186
Bumped sqlalchemy version to 0.7, replaced timerproxy with new event system for sqlalchemy....
r1360 colored_record = ''.join([start, def_record, end])
renamed project to rhodecode
r547 return colored_record
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
r1186
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
Bumped sqlalchemy version to 0.7, replaced timerproxy with new event system for sqlalchemy....
r1360 colored_record = ''.join([start, def_record, end])
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
r1186 return colored_record