def __addCustomFormatter(self, ch): """ add ColorFormatter with custom colors for each log level Args: None Returns None """ fmt = ("[%(asctime)s] " "[%(log_color)s%(levelname)s%(reset)s] " "[%(name)s%(message)s") formatter = ColoredFormatter( fmt, datefmt="%Y-%m-%d %H:%M:%S", reset=True, log_colors={ "DEBUG": "purple", "INFO": "green", "WARNING": "yellow", "ERROR": "red", "CRITICAL": "red", }, ) formatter.converter = time.gmtime # add formatter to console handler ch.setFormatter(formatter)
def __setLogger(): print("\n\n\n------------------------------------------------------New Session--------------------------------------------------\n\n\n") mainlogger = logging.getLogger() logFormatterforConsole = ColoredFormatter( '%(log_color)s%(levelname)-8s %(black)s%(bg_cyan)s%(asctime)s%(reset)s %(purple)s%(threadName)-14s %(black)s%(bg_cyan)s%(funcName)s in %(module)s:%(lineno)d%(reset)s\n %(log_color)s%(message)s', datefmt=None, reset=True, log_colors={ 'DEBUG': 'cyan', 'INFO': 'green', 'WARNING': 'yellow', 'ERROR': 'red', 'CRITICAL': 'red,bg_white', }, secondary_log_colors={}, style='%' ) logFormatterforConsole.converter = customTime consoleHandler = logging.StreamHandler(sys.stdout) consoleHandler.setFormatter(logFormatterforConsole) mainlogger.addHandler(consoleHandler) if not isdir("../logs"): makedirs("../logs") logFormatterforFile=logging.Formatter('%(levelname)-8s %(asctime)s %(threadName)-14s %(funcName)s in %(module)s:%(lineno)d\n %(message)s') logFormatterforFile.converter = customTime fileHandler = logging.FileHandler("{0}/{1}.logging".format("../logs", "log")) fileHandler.setFormatter(logFormatterforFile) mainlogger.addHandler(fileHandler) sys.stdout = StreamToLogger(mainlogger, logging.INFO) sys.stderr = WarnStreamToLogger(mainlogger, logging.WARN) err=partial(errHandler, mainlogger) sys.excepthook = err mainlogger.setLevel(logging.INFO) Logger.log=mainlogger