diff --git a/smartassist/src/utils.py b/smartassist/src/utils.py index 23ec68b..28a0b65 100644 --- a/smartassist/src/utils.py +++ b/smartassist/src/utils.py @@ -3,20 +3,35 @@ # is that it is easier to avoid circular imports when they are defined in a central location. import logging global log_level # Remember, in Python globals are only global in the module it is defined in -log_level = 'INFO' # Default logging level +log_level = 'INFO' # Default logging level if not specified in config file +def configure_logging(level=log_level): + """ + Set up logging for the project. This is the root logger instance. + All child loggers inherit from this logger. + """ + numeric_level = getattr(logging, level.upper()) # Convert string to numeric level -def set_local_logger(log_instance): - """ - Configure logging based on the global variable log_level - Logging is controlled by integer values, where DEBUG < INFO < WARNING < ERROR < CRITICAL. - To turn off logging completely, set numeric_log_level to at least CRITICAL + 1. - """ - global log_level - numeric_log_level = getattr(logging, log_level, None) - if not isinstance(numeric_log_level, int): - raise ValueError('Invalid log level: %s' % log_level) + logger = logging.getLogger() # Get the root logger + logger.setLevel(numeric_level) + + 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) + logger.addHandler(handler) + +# To be removed? +# def set_local_logger(log_instance): +# """ +# Configure logging based on the global variable log_level +# Logging is controlled by integer values, where DEBUG < INFO < WARNING < ERROR < CRITICAL. +# To turn off logging completely, set numeric_log_level to at least CRITICAL + 1. +# """ +# global log_level +# numeric_log_level = getattr(logging, log_level, None) +# if not isinstance(numeric_log_level, int): +# raise ValueError('Invalid log level: %s' % log_level) - logging.basicConfig(level=numeric_log_level) # Set the root logger level to the configured level - log_instance.info('Log level set to {}'.format(log_level)) # Example usage of the logger +# log_instance.basicConfig(level=numeric_log_level) # Set the root logger level to the configured level +# log_instance.info('Current log level set to {}'.format(log_instance.getLogger().getEffectiveLevel())) # Example usage of the logger