Skip to content

CLI-инструмент для анализа логов с поддержкой multiprocessing и кастомных отчётов.

Notifications You must be signed in to change notification settings

Forgot-0/LogAnalyzerCLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LogAnalyzerCLI

LogAnalyzerCLI — это инструмент командной строки для анализа логов, который поддерживает многопроцессорную обработку и позволяет создавать настраиваемые отчёты. Приложение предназначено для работы с большими файлами логов и предоставляет гибкий интерфейс для добавления новых типов отчётов.

Структура проекта

  • main.py: Точка входа для запуска приложения.
  • reportcli/cli.py: Определяет интерфейс командной строки для взаимодействия с приложением.
  • reportcli/reports/base.py: Содержит базовый класс BaseReport, который используется для создания отчетов.
  • reportcli/reports/handler.py: Реализует отчет HandlersReport, который анализирует Django-логи.
  • reportcli/processor.py: Содержит логику обработки файлов логов с использованием многопроцессорности.
  • test.py: Набор тестов для проверки функциональности приложения.

Возможности

  • Многопроцессорная обработка: Использует все доступные ядра процессора для ускорения анализа больших файлов логов.
  • Гибкость: Возможность добавления новых типов отчётов через наследование от базового класса BaseReport.
  • Поддержка больших данных: Эффективная обработка логов размером в десятки и сотни мегабайт.
  • Простота использования: Удобный интерфейс командной строки для запуска анализа.

Запуск

python3 main.py logs/app1.log logs/app2.log logs/app3.log --report handlers

Вывод:

Total requests: 8355840

HANDLER                 DEBUG     INFO  WARNING    ERROR CRITICAL
/admin/dashboard/           0   835584        0   278528        0
/admin/login/               0   696320        0   139264        0
/api/v1/auth/login/         0   557056        0   139264        0
/api/v1/cart/               0   417792        0        0        0
/api/v1/checkout/           0   835584        0   139264        0
/api/v1/orders/             0   278528        0   278528        0
/api/v1/payments/           0   974848        0   139264        0
/api/v1/products/           0   417792        0        0        0
/api/v1/reviews/            0   696320        0        0        0
/api/v1/shipping/           0   278528        0   139264        0
/api/v1/support/            0   139264        0   417792        0
/api/v1/users/              0   557056        0        0        0
                            0  6684672        0  1671168        0

Test

Для запуска тестов выполните:

pytest -v test.py

Добавление нового отчета

Вы можете создать собственный тип отчета, унаследовавшись от BaseReport. Для этого:

  1. Создатть новый класс, унаследованный от BaseReport.
  2. Реализовать методы process_line, merge и render.
  3. Зарегистрировать новый отчет, указав report_name в объявлении класса.
  4. Импортировать его в reposts/__init__.py

Пример по аналогии в reports/handler.py

и что бы зыпустить конкретный отчет нужно будет указать --report report_name

About

CLI-инструмент для анализа логов с поддержкой multiprocessing и кастомных отчётов.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages