Найти тему
Computer Pro

Модуль 6. Задача 4. Анализируем логи.

Оглавление

Наш друг, используя программу из предыдущей задачи, собрал логи за сутки в файл skillbox_json_messages.log. Нужно написать программу обрабатывающую данный файл и вычисляющую:

  1. Сколько было сообщений каждого уровня за сутки.
  2. В какой час было больше всего логов.
  3. Сколько логов уровня CRITICAL было в период с 05:00:00 по 05:20:00.
  4. Сколько сообщений содержат слово dog.
  5. Какое слово чаще всего встречалось в сообщениях уровня WARNING.

В советах и рекомендациях к данной задаче указано про использование утилиты командной строки Linux - grep. Не все задачи я сделал при помощи grep, три из пяти. Вывод работы всех функций таков:

-2

При помощи утилиты grep я решил 1, 3, 4 задачи:

-3
самое сложное это написать правильное регулярное выражение
самое сложное это написать правильное регулярное выражение
-5

Вторая задача, написана с использованием модуля intertools.groupby. Мы будем группировать логи по часам. Сколько логов во время от 00 часов до 1 часа это будет первая группа, от 01 часа до 02 - вторая и т.д. до 23. Всего получается 24 уникальных группы. И потом только узнать в какой группе больше всего записей.

-6

В последней задаче мы отфильтровываем все сообщения с уровнем равным "WARNING", создаем список из сообщений данного уровня и потом считаем какое слово встретится больше всего раз. В этом поможет модуль collections и defaultdict.

-7

Ну и собственно открытие файла...

-8

Я не знаю правильно или нет у меня решены задачи, но по крайней мере все работает и возможно даже правильно...

После принятия домашнего задания отпишусь в комментариях как все прошло и нужно ли что-то переделывать.