Skip to content

Latest commit

 

History

History
179 lines (121 loc) · 7.16 KB

File metadata and controls

179 lines (121 loc) · 7.16 KB

Система логування та адміністративні функції

Огляд

Проєкт було вдосконалено з комплексною системою логування та розширеними адміністративними функціями для кращого моніторингу та управління ботом.

🗂 Система логування

Структура лог файлів

Система створює окремі лог файли для різних типів подій:

  • logs/general.log - Загальні логи системи (10MB, 5 резервних копій)
  • logs/errors.log - Логи помилок (5MB, 3 резервні копії)
  • logs/admin.log - Логи адміністративних дій (5MB, 3 резервні копії)
  • logs/users.log - Логи дій користувачів (10MB, 5 резервних копій)

Автоматичне логування

Всі дії користувачів та адміністраторів автоматично логуються через middleware:

  • Повідомлення користувачів
  • Callback запити
  • Помилки в обробниках
  • Системні події

Функції логування

from app.services.logger import (
    log_user_action,      # Логування дій користувачів
    log_admin_action,     # Логування адміністративних дій
    log_error,           # Логування помилок
    log_system_event,    # Логування системних подій
    get_log_files,       # Отримання списку лог файлів
    get_log_content      # Читання вмісту лог файлів
)

👥 Управління користувачами

Нові адміністративні команди

  • 👥Користувачі - Меню управління користувачами
  • 📋Логи - Меню перегляду логів
  • 🔍Пошук користувача - Прямий пошук користувачів

Функції управління користувачами

Перегляд користувачів

  • Всі користувачі - Список всіх зареєстрованих користувачів
  • Останні користувачі - Останні 10 зареєстрованих користувачів
  • Топ користувачі - Топ 10 користувачів за кількістю активів

Детальна інформація

  • ID користувача
  • Кількість активів та правильних відповідей
  • Кількість записів у базі даних
  • Статистика по статусах
  • Статистика по конкурентах
  • Останні записи користувача
  • Пряме посилання на профіль користувача

Пошук користувачів

  • Пошук за ID користувача
  • Пошук за іменем або частиною імені
  • Автоматичне відображення деталей при знаходженні одного користувача

Статистика користувачів

  • Загальна кількість користувачів
  • Користувачі з активовами
  • Користувачі з правильними активовами
  • Загальна кількість записів
  • Розподіл по статусах
  • Розподіл по конкурентах

📋 Управління логами

Перегляд логів

  • Список лог файлів з розміром та датою модифікації
  • Перегляд вмісту лог файлів (останні 50 рядків)
  • Завантаження логів як файлів для детального аналізу

Типи логів

  • Загальні логи - Всі системні події
  • Логи помилок - Помилки та винятки
  • Адміністративні логи - Дії адміністраторів
  • Логи користувачів - Дії звичайних користувачів

🔧 Технічна реалізація

Middleware для логування

class LoggingMiddleware(BaseMiddleware):
    """Автоматичне логування всіх дій користувачів"""

Сервіси

  • app/services/logger.py - Система логування
  • app/services/user_management.py - Управління користувачами

База даних

Розширені запити для отримання статистики та інформації про користувачів.

🚀 Використання

Для адміністраторів

Перегляд користувачів:

  • Натисніть "👥Користувачі"
  • Оберіть потрібну опцію з меню

Перегляд логів:

  • Натисніть "📋Логи"
  • Оберіть лог файл для перегляду
  • Використовуйте "📥 Завантажити всі логи" для експорту

Пошук користувача:

  • Натисніть "🔍Пошук користувача"
  • Введіть ID або ім'я користувача

Для розробників

Додавання логування до нових функцій:

from app.services.logger import log_user_action, log_admin_action

# Логування дії користувача
log_user_action(user_id, username, "action description")

# Логування адміністративної дії
log_admin_action(admin_id, "action description", "additional details")

Обробка помилок:

from app.services.logger import log_error

try:
    # код
except Exception as e:
    log_error(e, "context description")

📊 Моніторинг

Система дозволяє:

  • Відстежувати активність користувачів
  • Моніторити помилки в реальному часі
  • Аналізувати статистику використання
  • Контролювати адміністративні дії

🔒 Безпека

  • Доступ до адміністративних функцій обмежений списком ADMIN_ID
  • Всі адміністративні дії логуються
  • Логи містять детальнька типів логів (errors, users, admin, general) ✅ різні об’єкти логів і рівні важливості у інформацію про дії користувачів

📈 Майбутні покращення

  • Експорт статистики в Excel/CSV
  • Графіки та діаграми статистики
  • Система сповіщень про критичні події