Skip to content

Latest commit

 

History

History
123 lines (89 loc) · 4.92 KB

File metadata and controls

123 lines (89 loc) · 4.92 KB

Система логирования Bitcoin Finder

Обзор

В проекте Bitcoin Finder реализована комплексная система логирования, которая отслеживает все важные события в приложении, включая подключения агентов к серверу, работу сервера и агентов.

Структура логов

Все логи сохраняются в директории logs/ в следующих файлах:

  • main.log - Основной лог приложения
  • agent.log - Лог работы агентов
  • server.log - Лог работы сервера координатора
  • connections.log - Лог подключений между агентами и сервером

Функции логирования

Основные методы

// Логирование основных событий
Logger.LogMain(string message);

// Логирование событий агента
Logger.LogAgent(string message);

// Логирование событий сервера
Logger.LogServer(string message);

// Логирование подключений
Logger.LogConnection(string message);

// Логирование ошибок
Logger.LogError(string component, string message, Exception? ex = null);

Чтение логов

// Получение содержимого лога
string content = await Logger.GetLogContent("main"); // main, agent, server, connection

Очистка логов

// Очистка всех логов
Logger.ClearLogs();

Интеграция в компоненты

DistributedAgentClient

  • Логирует подключения к серверу
  • Логирует получение и выполнение заданий
  • Логирует отправку результатов и прогресса
  • Логирует ошибки подключения

DistributedServer

  • Логирует запуск и остановку сервера
  • Логирует подключения и отключения агентов
  • Логирует назначение заданий
  • Логирует получение результатов от агентов
  • Логирует ошибки обработки

AgentForm

  • Логирует все действия пользователя в интерфейсе агента
  • Логирует изменения состояния подключения
  • Логирует получение заданий

ServerForm

  • Логирует конфигурацию сервера
  • Логирует запуск и остановку сервера
  • Логирует статистику работы

Program.cs

  • Логирует запуск приложения
  • Логирует ошибки в GUI режиме

Формат логов

Каждая запись в логе содержит:

  • Тип лога: [MAIN], [AGENT], [SERVER], [CONNECTION], [ERROR-COMPONENT]
  • Временная метка: YYYY-MM-DD HH:mm:ss.fff
  • Сообщение

Пример:

[AGENT] 2025-07-11 17:59:41.074 - Подключено к серверу 127.0.0.1:5000
[SERVER] 2025-07-11 17:59:41.075 - Агент Agent_175941_127.0.0.1 подключен
[CONNECTION] 2025-07-11 17:59:41.075 - Агент Agent_175941_127.0.0.1 подключен с адреса 127.0.0.1

Мониторинг подключений

Система автоматически логирует:

  • Подключения агентов к серверу
  • Отключения агентов
  • Ошибки подключения
  • Таймауты соединений

Обработка ошибок

Все ошибки логируются с полной информацией:

  • Компонент, где произошла ошибка
  • Сообщение об ошибке
  • Stack trace (если доступен)

Производительность

  • Логирование происходит асинхронно
  • Используется блокировка для потокобезопасности
  • Автоматическое создание директории логов
  • Обработка ошибок записи в лог

Использование

Система логирования автоматически активируется при запуске приложения. Все важные события записываются в соответствующие файлы логов, что позволяет:

  1. Отслеживать работу распределенной системы
  2. Диагностировать проблемы подключения
  3. Анализировать производительность
  4. Мониторить активность агентов и сервера