diff --git a/src/alogamous/__main__.py b/src/alogamous/__main__.py index a707de5..17d4274 100644 --- a/src/alogamous/__main__.py +++ b/src/alogamous/__main__.py @@ -13,17 +13,24 @@ warning_analyzer, ) -if len(sys.argv) != int(sys.argv[1]) + 4: - sys.stdout.write(f"Usage: {sys.argv[0]} ... ") +expected_arg_len = 2 + +if len(sys.argv) != expected_arg_len: + sys.stdout.write(f"Usage: {sys.argv[0]} ") + sys.stdout.write("\nPossible LOG_CONFIGS are:") + for key in log_line_parser.LOG_FILE_CONFIGS: + sys.stdout.write(f"\n- {key}") sys.exit(1) -expected_fields = sys.argv[2 : int(sys.argv[1]) + 2] with open("../../data/test_output_file.txt", "a") as output_file: reader = directory_reader.DirectoryReader("../../data") - line_parser = log_line_parser.LogLineParser( - expected_fields, sys.argv[int(sys.argv[1]) + 2], sys.argv[int(sys.argv[1]) + 3] + expected_fields = list( + log_line_parser.LOG_FILE_CONFIGS[sys.argv[1]][log_line_parser.ConfigParameters.EXPECTED_FIELDS] ) + seperator = str(log_line_parser.LOG_FILE_CONFIGS[sys.argv[1]][log_line_parser.ConfigParameters.SEPERATOR]) + header_line = str(log_line_parser.LOG_FILE_CONFIGS[sys.argv[1]][log_line_parser.ConfigParameters.HEADER_LINE]) + line_parser = log_line_parser.LogLineParser(expected_fields, seperator, header_line) analyzer.analyze_log_stream( [ echo_analyzer.EchoAnalyzer(), diff --git a/src/alogamous/log_line_parser.py b/src/alogamous/log_line_parser.py index a63232a..670534a 100644 --- a/src/alogamous/log_line_parser.py +++ b/src/alogamous/log_line_parser.py @@ -1,6 +1,21 @@ from __future__ import annotations +class ConfigParameters: + EXPECTED_FIELDS = "expected fields" + SEPERATOR = "seperator" + HEADER_LINE = "header line" + + +LOG_FILE_CONFIGS = { + "default": { + ConfigParameters.EXPECTED_FIELDS: ["datetime", "source", "level", "message"], + ConfigParameters.SEPERATOR: " - ", + ConfigParameters.HEADER_LINE: "====================================================", + } +} + + class LineType: HEADER_LINE = "header line" LOG_LINE = "log line"