# # load_parsers.py # # Search for and load files which parse logs for particular services # import imp import os import glob parser_dir = "/usr/share/logparse/" main_module = "__init__.py" import logging logger = logging.getLogger(__name__) def search(): logger.debug("Searching for parsers in {0}".format(parser_dir)) parsers = [] parser_candidates = glob.glob(os.path.join(os.path.dirname(parser_dir), "*.py")) for p in parser_candidates: location = os.path.join(parser_dir, p) if not os.path.isdir(parser_dir) or not main_module + '.py' in os.listdir(location): continue info = imp.find_module(main_module, [location]) parsers.append({"name": p, "info": info}) return parsers def load(parser): logger.debug("Loading {0}".format(parser["name"])) return imp.load_module(parser["name"], *parser["info"])