From 1b5624018c3685a0060bdbc2447f88f28ad9685c Mon Sep 17 00:00:00 2001 From: Joakim Persson Date: Sun, 28 Jul 2024 23:22:08 +0200 Subject: [PATCH] =?UTF-8?q?Lagt=20till=20fler=20metoder.=20Sett=20till=20d?= =?UTF-8?q?et=20=C3=A4r=20att=20root-loggaren=20som=20skapas=20vid=20insta?= =?UTF-8?q?sieringen=20av=20denna=20singleton?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- smartassist/src/utils.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/smartassist/src/utils.py b/smartassist/src/utils.py index 2e47cc6..2aebcbc 100644 --- a/smartassist/src/utils.py +++ b/smartassist/src/utils.py @@ -17,21 +17,40 @@ class GlobalState: if cls._instance is None: cls._instance = super(GlobalState, cls).__new__(cls) cls._instance.log_level = 'INFO' # Default logging level - cls._instance.logger = logging.getLogger(__name__) # Get logger for the caller module + cls._instance.logger = logging.getLogger() # Get root logger for the caller module handler = logging.StreamHandler() # Or other handler (FileHandler for logs to file) formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") handler.setFormatter(formatter) cls._instance.logger.addHandler(handler) + cls._instance.logger.setLevel(getattr(logging, cls._instance.log_level)) # Initialize root logger level + cls._instance.logger.info(" __new__(cls): Logger in GlobalState created: %s", cls._instance.logger) return cls._instance def configure_logging(self, level=None): """Set up logging for the project.""" if level is None: level = self.log_level + # numeric_level = getattr(logging, level.upper()) # Convert string to numeric level numeric_level = getattr(logging, level.upper()) # Convert string to numeric level self.logger.setLevel(numeric_level) + self.logger.debug(f"utils.py -- configure_logging(): effective log level is {level} which is {self.logger.getEffectiveLevel()}") - def set_log_level(self, level): + def set_log_level(self, level = 'INFO'): """Set the logging level.""" self.log_level = level self.configure_logging() + + def get_log_level(self): + """Getter for log_level attribute.""" + return self.log_level + + def get_effective_log_level(self): + """Getter for effective log level of loggerattribute.""" + return self.logger.getEffectiveLevel() + + def getLogger(self, module_name=None): + """Return a logger based on the module name.""" + if module_name is None: + module_name = __name__ + logger = logging.getLogger(module_name) + return logger \ No newline at end of file