В проекте 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();- Логирует подключения к серверу
- Логирует получение и выполнение заданий
- Логирует отправку результатов и прогресса
- Логирует ошибки подключения
- Логирует запуск и остановку сервера
- Логирует подключения и отключения агентов
- Логирует назначение заданий
- Логирует получение результатов от агентов
- Логирует ошибки обработки
- Логирует все действия пользователя в интерфейсе агента
- Логирует изменения состояния подключения
- Логирует получение заданий
- Логирует конфигурацию сервера
- Логирует запуск и остановку сервера
- Логирует статистику работы
- Логирует запуск приложения
- Логирует ошибки в 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 (если доступен)
- Логирование происходит асинхронно
- Используется блокировка для потокобезопасности
- Автоматическое создание директории логов
- Обработка ошибок записи в лог
Система логирования автоматически активируется при запуске приложения. Все важные события записываются в соответствующие файлы логов, что позволяет:
- Отслеживать работу распределенной системы
- Диагностировать проблемы подключения
- Анализировать производительность
- Мониторить активность агентов и сервера