123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import logging
- import termcolor
- from . import __appname__
- COLORS = {
- 'WARNING': 'yellow',
- 'INFO': 'white',
- 'DEBUG': 'blue',
- 'CRITICAL': 'red',
- 'ERROR': 'red',
- }
- class ColoredFormatter(logging.Formatter):
- def __init__(self, msg, use_color=True):
- logging.Formatter.__init__(self, msg)
- self.use_color = use_color
- def format(self, record):
- levelname = record.levelname
- if self.use_color and levelname in COLORS:
- colored_levelname = termcolor.colored(
- '[{}]'.format(levelname), color=COLORS[levelname]
- )
- record.levelname = colored_levelname
- return logging.Formatter.format(self, record)
- class ColoredLogger(logging.Logger):
- fmt_filename = termcolor.colored('%(filename)s', attrs={'bold': True})
- FORMAT = '%(levelname)s %(message)s ({}:%(lineno)d)'.format(fmt_filename)
- def __init__(self, name):
- logging.Logger.__init__(self, name, logging.INFO)
- color_formatter = ColoredFormatter(self.FORMAT)
- console = logging.StreamHandler()
- console.setFormatter(color_formatter)
- self.addHandler(console)
- return
- logging.setLoggerClass(ColoredLogger)
- logger = logging.getLogger(__appname__)
|