def get_log_formats(config): """ Parse config for log_format directives :return: iterator over ('format name', 'format string') tuple of found directives """ # log_format name [params] log_format = Literal('log_format') + parameter + Group(OneOrMore(parameter)) + semicolon log_format.ignore(pythonStyleComment) for directive in log_format.searchString(config).asList(): name = directive[1] format_string = ''.join(directive[2]) yield name, format_string
def get_access_logs(config): """ Parse config for access_log directives :return: iterator over ('path', 'format name') tuple of found directives """ access_log = Literal("access_log") + ZeroOrMore(parameter) + semicolon access_log.ignore(pythonStyleComment) for directive in access_log.searchString(config).asList(): path = directive[1] if path == 'off' or path.startswith('syslog:'): # nothing to process here continue format_name = 'combined' if len(directive) > 2 and '=' not in directive[2]: format_name = directive[2] yield path, format_name