Skip to content

Instantly share code, notes, and snippets.

@scturtle
Created July 5, 2019 04:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save scturtle/ddc889d378288952f3a72d3f069cbfb8 to your computer and use it in GitHub Desktop.
Save scturtle/ddc889d378288952f3a72d3f069cbfb8 to your computer and use it in GitHub Desktop.
import logging
class ColoredFormatter(logging.Formatter):
def __init__(self, fmt, datefmt=None):
logging.Formatter.__init__(self, fmt, datefmt)
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = range(30, 38)
self.COLORS = dict(
DEBUG=GREEN, INFO=WHITE, WARNING=YELLOW, ERROR=RED, CRITICAL=MAGENTA
)
def format(self, record):
color = self.COLORS[record.levelname]
msg = logging.Formatter.format(self, record)
return f"\033[1;{color}m{msg}\033[0m"
class ColoredLogger(logging.Logger):
def __init__(self, name):
logging.Logger.__init__(self, name, logging.DEBUG)
FORMAT = "%(asctime)s %(filename)s:%(lineno)-4d %(levelname).1s %(message)s"
DATEFMT = "%Y-%m-%d %H:%M:%S"
color_formatter = ColoredFormatter(FORMAT, DATEFMT)
console = logging.StreamHandler()
console.setFormatter(color_formatter)
self.addHandler(console)
logging.setLoggerClass(ColoredLogger)
if __name__ == "__main__":
log = logging.getLogger(__name__)
log.debug("test")
log.info("test")
log.warning("test")
log.error("test")
log.critical("test")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment