Files
loglens-cli/loglens/analyzers/severity.py
7000pctAUTO 2746b88aa5
Some checks failed
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / test (3.9) (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / build (push) Has been cancelled
CI / test (3.10) (push) Has been cancelled
fix: add --version option to Click CLI group
- Added @click.version_option decorator to main() in commands.py
- Imported __version__ from loglens package
- Resolves CI build failure: 'loglens --version' command not found
2026-02-02 09:25:00 +00:00

65 lines
1.9 KiB
Python

from typing import Optional
class SeverityClassifier:
"""Classify log entry severity based on content and level."""
def classify(self, message: str, level: Optional[str]) -> str:
"""Classify the severity of a log entry."""
if level:
level_lower = level.lower()
if level_lower in ("critical", "fatal", "emerg"):
return "critical"
elif level_lower in ("error", "err", "erro"):
return "error"
elif level_lower in ("warning", "warn"):
return "warning"
elif level_lower in ("info", "informational"):
return "info"
elif level_lower in ("debug", "dbg", "trace"):
return "debug"
message_lower = message.lower()
critical_keywords = [
"fatal",
"panic",
"crash",
"died",
"terminated",
"segfault",
"out of memory",
"no space left",
]
error_keywords = [
"error",
"fail",
"exception",
"invalid",
"cannot",
"unable",
"timeout",
"refused",
"rejected",
]
warning_keywords = ["warning", "warn", "deprecated", "slow", "high latency"]
debug_keywords = ["debug", "trace", "verbose", "dump", "print"]
for keyword in critical_keywords:
if keyword in message_lower:
return "critical"
for keyword in error_keywords:
if keyword in message_lower:
return "error"
for keyword in warning_keywords:
if keyword in message_lower:
return "warning"
for keyword in debug_keywords:
if keyword in message_lower:
return "debug"
return "info"