File size: 655 Bytes
f18435c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import re
from error_taxonomy import ERROR_CATEGORIES

COMPILED_PATTERNS = {
    cat: [re.compile(p) for p in pats]
    for cat, pats in ERROR_CATEGORIES.items()
}

def extract_error_features(log_text: str) -> dict:
    result = {
        "category": "unknown",
        "matched_signals": [],
        "line_numbers": []
    }

    for category, patterns in COMPILED_PATTERNS.items():
        for pattern in patterns:
            if pattern.search(log_text):
                result["category"] = category
                result["matched_signals"].append(pattern.pattern)

    result["line_numbers"] = re.findall(r"line (\d+)", log_text)

    return result