Sometimes, you just want to color the output of the logging package in Python.
Here's a simple custom formatter which shows how this can be done:
import logging class ColorFormatter(logging.Formatter): """Logging Formatter to add colors and count warning / errors""" grey = "\x1b[90m" green = "\x1b[92m" yellow = "\x1b[93m" red = "\x1b[91m" reset = "\x1b[0m" format = "%(asctime)s | %(levelname)-5.5s | %(message)s" FORMATS = { logging.DEBUG: grey + format + reset, logging.INFO: green + format + reset, logging.WARNING: yellow + format + reset, logging.ERROR: red + format + reset, logging.CRITICAL: red + format + reset } def format(self, record): record.levelname = 'WARN' if record.levelname == 'WARNING' else record.levelname record.levelname = 'ERROR' if record.levelname == 'CRITICAL' else record.levelname log_fmt = self.FORMATS.get(record.levelno) formatter = logging.Formatter(log_fmt) return formatter.format(record) def configure_logging(): logger = logging.getLogger() logger.setLevel(logging.DEBUG) ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) ch.setFormatter(ColorFormatter()) logger.addHandler(ch) def main(): configure_logging() logging.debug("debug message") logging.info("info message") logging.warning("warning message") logging.error("error message") logging.critical("critical message") if __name__ == "__main__": main()