Наш друг, используя программу из предыдущей задачи, собрал логи за сутки в файл skillbox_json_messages.log. Нужно написать программу обрабатывающую данный файл и вычисляющую:
- Сколько было сообщений каждого уровня за сутки.
- В какой час было больше всего логов.
- Сколько логов уровня CRITICAL было в период с 05:00:00 по 05:20:00.
- Сколько сообщений содержат слово dog.
- Какое слово чаще всего встречалось в сообщениях уровня WARNING.
В советах и рекомендациях к данной задаче указано про использование утилиты командной строки Linux - grep. Не все задачи я сделал при помощи grep, три из пяти. Вывод работы всех функций таков:
При помощи утилиты grep я решил 1, 3, 4 задачи:
Вторая задача, написана с использованием модуля intertools.groupby. Мы будем группировать логи по часам. Сколько логов во время от 00 часов до 1 часа это будет первая группа, от 01 часа до 02 - вторая и т.д. до 23. Всего получается 24 уникальных группы. И потом только узнать в какой группе больше всего записей.
В последней задаче мы отфильтровываем все сообщения с уровнем равным "WARNING", создаем список из сообщений данного уровня и потом считаем какое слово встретится больше всего раз. В этом поможет модуль collections и defaultdict.
Ну и собственно открытие файла...