Как выполнить анализ текстовых логов на python?
Необходимо выполнить анализ текстовых логов, в которых есть информация о логинах и логаутах пользователей системы.
Записи о логине и логауте выглядят следующим образом:
10:08:54 AM Login successful from user Sergey Pavlov id_session=2710
10:35:33 PM Closing session (user $escalation$, reserved) id_session=2710 reason=1,20
По тэгу «Login successful» понимаем, что пользователь Sergey Pavlov зашёл, и получаем номер сессии id_session=2710 . Далее ищем по тэгу «Closing session» этот же номер сессии – понимаем, что пользователь вышел.
Мне нужно выяснить сколько времени он был активен сравнив номер сессии. Грубо говоря мне нужно достать id, ФИО и время.
Ответы (1 шт):
Мыслишь правильно. Используй регулярные выражения. Вот пример как парсится первая строка:
re.search(r"(?P<t1>\d+:\d+:\d+) (?P<t2>PM|AM) Login successful .*id_session=(?P<sid>\d+)", s).groups()
('10:08:54', 'AM', '2710')
Далее изучай. Чтобы перевести время из строки, смотри модуль datetime функцию strptime