Mercurial > kallithea
diff rhodecode/lib/colored_formatter.py @ 547:1e757ac98988
renamed project to rhodecode
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 06 Oct 2010 03:18:16 +0200 |
parents | pylons_app/lib/colored_formatter.py@779dabcaae28 |
children | b9ea10d3e419 73434499fa72 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/lib/colored_formatter.py Wed Oct 06 03:18:16 2010 +0200 @@ -0,0 +1,38 @@ + +import logging + +BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38) + +# Sequences +RESET_SEQ = "\033[0m" +COLOR_SEQ = "\033[1;%dm" +BOLD_SEQ = "\033[1m" + +COLORS = { + 'CRITICAL': MAGENTA, # level 50 + 'ERROR': RED, # level 40 + 'WARNING': CYAN, # level 30 + 'INFO': GREEN, # level 20 + 'DEBUG': BLUE, # level 10 +} + +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 + """ + + 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