studia/jezyki-skryptowe/lista5/reader.py
2024-06-14 16:53:58 +02:00

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