Skip to content

Commit

Permalink
improving error count analyzer
Browse files Browse the repository at this point in the history
  • Loading branch information
kitrady committed Aug 3, 2024
1 parent 109528b commit 6cd426f
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/alogamous/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
analyzer.analyze_log_stream(
[
# echo_analyzer.EchoAnalyzer(),
error_counter_analyzer.ErrorCounterAnalyzer(),
error_counter_analyzer.ErrorCounterAnalyzer(line_parser),
flag_duplicate_log_messages.FlagDuplicateLogMessages(),
line_count_analyzer.LineCountAnalyzer(),
format_analyzer.FormatAnalyzer(line_parser),
Expand Down
8 changes: 5 additions & 3 deletions src/alogamous/error_counter_analyzer.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from alogamous import analyzer
from alogamous import analyzer, log_line_parser


class ErrorCounterAnalyzer(analyzer.Analyzer):
def __init__(self):
def __init__(self, line_parser):
self.parser = line_parser
self.error_number = 0

def read_log_line(self, line):
if "ERROR" in line:
parsed_line = self.parser.parse(line)
if parsed_line["type"] == log_line_parser.LineType.LOG_LINE and parsed_line["level"].lower() == "error":
self.error_number += 1

def report(self, out_stream):
Expand Down
17 changes: 13 additions & 4 deletions tests/test_error_counter.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import io

from alogamous import error_counter_analyzer
from alogamous import error_counter_analyzer, log_line_parser


def test_error_counter():
counter = error_counter_analyzer.ErrorCounterAnalyzer()
parser = log_line_parser.LogLineParser(
["datetime", "source", "level", "message"], " - ", "===================================================="
)
counter = error_counter_analyzer.ErrorCounterAnalyzer(parser)
in_stream = io.StringIO(
"""2024-06-20 17:16:03,660 - root - ERROR - Caught exception N/A.
2024-06-20 17:16:03,660 - root - ERROR - Caught exception N/A. Message: Unclosed connector NoneType: None"""
Expand All @@ -17,7 +20,10 @@ def test_error_counter():


def test_no_errors():
counter = error_counter_analyzer.ErrorCounterAnalyzer()
parser = log_line_parser.LogLineParser(
["datetime", "source", "level", "message"], " - ", "===================================================="
)
counter = error_counter_analyzer.ErrorCounterAnalyzer(parser)
in_stream = io.StringIO("""2024-06-20 17:17:04,278 - root - INFO - Updating prices
2024-06-20 17:24:34,091 - root - INFO - Closing client connection.""")
out_stream = io.StringIO()
Expand All @@ -28,7 +34,10 @@ def test_no_errors():


def test_no_input_lines():
counter = error_counter_analyzer.ErrorCounterAnalyzer()
parser = log_line_parser.LogLineParser(
["datetime", "source", "level", "message"], " - ", "===================================================="
)
counter = error_counter_analyzer.ErrorCounterAnalyzer(parser)
out_stream = io.StringIO()
counter.report(out_stream)
assert out_stream.getvalue().strip() == "Number of error lines: 0"

0 comments on commit 6cd426f

Please sign in to comment.