From 26bde42f5fa4e75c454393687b89b114fb66add8 Mon Sep 17 00:00:00 2001 From: egigoka Date: Thu, 12 Sep 2024 17:16:47 +0500 Subject: [PATCH] add minimum log level to read --- read_log.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/read_log.py b/read_log.py index 5420b48..71616d5 100644 --- a/read_log.py +++ b/read_log.py @@ -22,6 +22,16 @@ else: print("Use \"test\" or \"prod\" argument to select server") +LOG_LEVELS = ["Trace", "Debug", "Info", "Warning", "Error", "Fatal", "Unknown"] +MIN_LOG_LEVEL_STRING = "Trace" +for arg in OS.args: + prefix = "--min-log-level=" + if arg.startswith(prefix): + MIN_LOG_LEVEL_STRING = arg[len(prefix):].title() + if MIN_LOG_LEVEL_STRING not in LOG_LEVELS: + raise ValueError(f"Log level \"{MIN_LOG_LEVEL_STRING}\" isn't supported. Supported are " + ", ".join(LOG_LEVELS)) +MIN_LOG_LEVEL = LOG_LEVELS.index(MIN_LOG_LEVEL_STRING) + def clear_cache(): global CACHE @@ -313,6 +323,12 @@ def get_diff_and_formatted(last_time): return now, diff, diff_formatted +def is_printable(row): + level_string = row[3] + level = LOG_LEVELS.index(level_string) + return level >= MIN_LOG_LEVEL + + def main(): # init logic @@ -358,6 +374,10 @@ def main(): line_print_number = line_cnt.get() row = csv_line_to_list(line) + + if not is_printable(row): + continue + color, back = get_colors(row, line_print_number) widths = get_widths() last_time = get_time(row)