#!/usr/bin/python3
import logging

class LogFormatter(logging.Formatter):
	def __init__(self, docolor):
		super().__init__()
		self.docolor = docolor

	def formatMessage(self, record):
		if self.docolor:
			c_lvl = 33
			c_mod = 32
			c_msg = 0

			if record.levelno == logging.WARNING:
				c_lvl = 31
				#c_mod = 33
				c_msg = 33

			elif record.levelno > logging.WARNING:
				c_lvl = 31
				c_mod = 31
				c_msg = 31

			fmt = '\x1b['+str(c_lvl)+'m%(levelname)8s\x1b[0m \x1b['+str(c_mod)+'m%(name)s\x1b['+str(c_msg)+'m: %(message)s\x1b[0m'
		else:
			fmt = '%(levelname)8s %(name)s: %(message)s'

		return fmt % record.__dict__


class LogHandler(logging.StreamHandler):
	def __init__(self, docolor):
		super().__init__()
		self.setFormatter(LogFormatter(docolor))