def _load_handlers(self, handler_config_path, **kwargs): base_path = os.path.expanduser(handler_config_path) conf_files = glob.glob(os.path.join(base_path, '*.conf')) logger.debug("Loading handlers from %s", handler_config_path) for f in conf_files: handler_name = os.path.basename(f)[:-5] # We could eventually have the handlers get loaded everytime and # update them if their config has changed (via config_version # below). For now lets not get that tricky. if handler_name in self._handlers: if not kwargs.get('force_load_handlers', False): logger.debug("Handler %s already loaded, skipping.", handler_name) continue conf_version, conf = yaml_config.load_config(f) enabled = conf.pop('enabled', False) if not enabled: logger.debug("Handler %s 'enabled' is not set to true. " "Skipping.", handler_name) continue cls_string = conf.pop('handler_class') logger.debug('Initializing handler %s.', handler_name) try: handler_cls = load_object_from_string(cls_string) self._handlers[handler_name] = handler_cls(conf) except Exception as e: logutil.log_exception("Skipping handler %s due to " "unhandled exception:" % (handler_name), logger) continue if not self._handlers: logger.error("No handlers loaded. Exiting.") sys.exit(1)
def _load_filters(self): filters = self.config.get('filters', []) if filters: for filter_string in filters: logging.debug("Adding Filter %s to Handler %s.", filter_string, self.__class__.__name__) f = load_object_from_string(filter_string) self._filters.append(f) else: logger.debug("No filters configured for Handler %s.", self.__class__.__name__)
def _load_handler(self, handler_name, config, **kwargs): enabled = config.pop('enabled', False) if not enabled: logger.debug("Handler %s 'enabled' is not set to true. " "Skipping.", handler_name) return None cls_string = config.pop('handler_class') logger.debug('Initializing handler %s.', handler_name) try: handler_cls = load_object_from_string(cls_string) return handler_cls(config) except Exception as e: logutil.log_exception("Skipping handler %s due to " "unhandled exception:" % (handler_name), logger) return None
def load_handler(self, handler_name, config, **kwargs): enabled = config.pop('enabled', False) if not enabled: logger.debug( "Handler %s 'enabled' is not set to true. " "Skipping.", handler_name) return None cls_string = config.pop('handler_class') logger.debug('Initializing handler %s.', handler_name) try: handler_cls = load_object_from_string(cls_string) return handler_cls(config) except Exception: logutil.log_exception( "Skipping handler %s due to " "unhandled exception:" % handler_name, logger) return None
def test_load_class_from_string(self): from logging import Logger cls = utils.load_object_from_string('logging.Logger') self.assertIs(cls, Logger)
def test_load_class_from_string(self): from logging import Logger x = utils.load_object_from_string('logging.Logger') self.assertEqual(x, Logger)