35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from parser import get_message_type, parse_line, Line, MessageType
|
|
import logging
|
|
from logger import logger
|
|
|
|
def read_logs(path: str) -> Line:
|
|
for line in open(path, 'r'):
|
|
#1.2.1
|
|
logger.debug(f"read {len(line.encode('utf-8'))} bytes")
|
|
|
|
try:
|
|
parsed_line = parse_line(line.strip())
|
|
except ValueError as e:
|
|
logger.error(str(e))
|
|
continue
|
|
|
|
|
|
msg_type = get_message_type(parsed_line.message)
|
|
if msg_type == MessageType.SUCCESSFUL_LOGIN:
|
|
logger.info("read successful login message")
|
|
#1.2.2
|
|
elif msg_type == MessageType.CLOSED_CONNECTION:
|
|
logger.info("read closed connection message")
|
|
#1.2.3
|
|
elif msg_type == MessageType.FAILED_LOGIN:
|
|
logger.warning("read failed login message")
|
|
#1.2.4
|
|
elif msg_type == MessageType.INVALID_PASSWORD:
|
|
logger.error("read invalid password message")
|
|
elif msg_type == MessageType.INVALID_USERNAME:
|
|
logger.error("read invalid username message")
|
|
#1.2.5
|
|
elif msg_type == MessageType.BREAK_IN_ATTEMPT:
|
|
logger.critical("read break-in attempt message")
|
|
|
|
yield parsed_line |