From dfcbef7ae440e558fb36fe32feca81cb5969e5fb Mon Sep 17 00:00:00 2001 From: Emanuele Date: Sat, 2 Nov 2019 14:29:48 +0100 Subject: [PATCH] FancyLogger funzionante e file di configurazione test --- bananaSPLIT/libbabanasplit/libfancylogger.py | 70 +++++++++++++++++--- bananaSPLIT/libbabanasplit/testSettings.json | 8 +++ 2 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 bananaSPLIT/libbabanasplit/testSettings.json diff --git a/bananaSPLIT/libbabanasplit/libfancylogger.py b/bananaSPLIT/libbabanasplit/libfancylogger.py index 8bef29e..adb8b3f 100644 --- a/bananaSPLIT/libbabanasplit/libfancylogger.py +++ b/bananaSPLIT/libbabanasplit/libfancylogger.py @@ -3,30 +3,82 @@ Created on 2 nov 2019 @author: Emanuele Trabattoni ''' +import sys +import json import logging +import colorama class fancyLogger(object): ''' Colorizza il logger di python, per un' esperienza alla willy wonka ''' - - def __init__(self, params): + def __init__(self, name="Logger", consoleLog=True, fileLog=True, filePath=None): + settings = json.load(open("./testSettings.json"))["logger"] + colorama.init(convert=True) + self.LRED = colorama.Fore.LIGHTRED_EX + self.RED = colorama.Fore.RED + self.LYELLOW = colorama.Fore.LIGHTYELLOW_EX + self.YELLOW = colorama.Fore.YELLOW + self.LBLUE = colorama.Fore.LIGHTBLUE_EX + self.BLUE = colorama.Fore.BLUE + self.LGREEN = colorama.Fore.LIGHTGREEN_EX + self.LGREEN = colorama.Fore.GREEN + self.WHITE = colorama.Fore.LIGHTWHITE_EX + self.RST = colorama.Style.RESET_ALL + + # Setup Logger + self.LOGGER = logging.getLogger(name) + self.LOGGER.setLevel(logging.DEBUG) + self.LOGGER.propagate = False + FORMATTER = logging.Formatter((settings["logFormat"]), (settings["logTimeFormat"])) + if fileLog: + # File Logging + fh = logging.FileHandler((settings["logFile"])) + fh.setLevel(logging.DEBUG) + fh.setFormatter(FORMATTER) + self.LOGGER.addHandler(fh) + if consoleLog: + # Console Logging + cl= logging.StreamHandler(sys.stdout) + cl.setLevel(logging.DEBUG) + cl.setFormatter(FORMATTER) + self.LOGGER.addHandler(cl) pass - def debug(self): + def debug(self, msg="Undefined Debug"): + print(self.LBLUE, end='') + self.LOGGER.debug(msg+self.RST) pass - def info(self): + def info(self, msg="Undefined Info"): + print(self.WHITE, end='') + self.LOGGER.info(msg+self.RST) pass - def warn(self): + def warn(self, msg="Undefined Warning"): + print(self.LYELLOW, end='') + self.LOGGER.warning(msg+self.RST) pass - def error(self): + def error(self, msg="Undefined Error"): + print(self.LRED, end='') + self.LOGGER.error(msg+self.RST) pass - def critical(self): + def critical(self, msg="Undefined Critical"): + print(self.RED, end='') + self.LOGGER.critical(msg+self.RST) pass - - \ No newline at end of file + def testColors(self): + self.debug("Test Debug") + self.info("Test Info") + self.warn("Test Warning") + self.error("Test Error") + self.critical("Test Critical") + pass + +if __name__ == "__main__": + l=fancyLogger(name="testLogger") + l.testColors() + pass \ No newline at end of file diff --git a/bananaSPLIT/libbabanasplit/testSettings.json b/bananaSPLIT/libbabanasplit/testSettings.json new file mode 100644 index 0000000..612469e --- /dev/null +++ b/bananaSPLIT/libbabanasplit/testSettings.json @@ -0,0 +1,8 @@ +{ + "version": "v1.1a", + "logger": { + "logFile": "D:\\Test\\bananaSPLIT.log", + "logFormat": "%(asctime)s|%(levelname)-8s|%(funcName)-10s|%(lineno)-3d: %(message)-50s", + "logTimeFormat": "%m-%d %H:%M:%S" + } +}