Что умеет решение
Модуль SolverWeb Logger предназначен для ведения журналов событий на сайтах под управлением Bitrix. Он предоставляет удобный интерфейс администратора и систему уведомлений. Интеграция в код занимает несколько строк: необходимо подключить модуль через CModule::IncludeModule('solverweb.logger'), создать экземпляр логгера для конкретного пространства (например, \SolverWeb\Logger::Space('login')) и вызвать метод log с названием и значением.
Пространство представляет собой изолированный журнал для отдельного функционального блока сайта, такого как авторизация, работа с Git, обработка исключений или интеграция с Telegram. Можно использовать любое собственное название. В качестве значения записи допускается передача строки, массива или объекта. Модуль автоматически сериализует массивы и объекты в формат JSON, что обеспечивает читаемость данных в логах.
Поддерживается пять уровней важности записей: info, warning, error, fatal и success. В административной панели пространство отображается отдельно. Ошибки визуально выделяются, записи доступны для фильтрации по уровню и названию. Администратор может очистить журнал или удалить пространство полностью.
Модуль автоматически собирает следующие системные события:
- входы в систему выбранных пользователей Bitrix;
- необработанные PHP-исключения, указанные в файле .settings.php;
- изменения в ветке Git HEAD;
- появление файлов, не добавленных в коммит;
- зависшие почтовые события Bitrix.
Модуль SolverWeb Logger защищает от дублирования записей об исключениях и повторяющихся событиях с помощью SHA-1-хеша. Это предотвращает многократную фиксацию одного и того же фрагмента лога ошибок. Файл исключений обрабатывается порциями, что исключает необходимость загрузки всего содержимого в память одновременно.
Для каждого пространства доступны настройки доставки уведомлений по уровням на электронную почту и в Telegram. Параметры Telegram можно задать единожды в общих настройках. Если в конкретном пространстве эти поля остаются пустыми, модуль автоматически использует общие значения: идентификатор чата, токен, настройки прокси и шаблон сообщения. Прокси настраивается одной строкой и поддерживает протоколы http, https и socks5, включая логин и пароль в URL.
Отправка уведомлений не замедляет работу сайта. Вызов функции log() немедленно сохраняет запись и ставит задачу в очередь. Затем фоновый агент Bitrix, запускаемый раз в минуту, обрабатывает доставку. При сбое система повторяет попытки с интервалами 1, 5, 15, 60 и 360 минут, после чего помечает задачу как ошибочную. В настройках пространства отображаются состояние очереди, последняя ошибка и время работы агента.
Доступен режим отладки Telegram. При его активации модуль создает отдельное пространство telegram, куда записываются попытки отправки, ответы API, ошибки и параметры соединения с прокси. Эти технические записи не отправляются в Telegram, что исключает возникновение циклических ошибок.
Логи по умолчанию сохраняются в течение 30 дней. Для каждого отдельного пространства можно установить индивидуальный срок хранения. Отправленные задания очереди удаляются через неделю.
Для корректной фоновой работы агенты Bitrix должны запускаться через cron. Если это условие не выполнено, уведомления останутся в очереди, а проверки Git и исключений будут заблокированы.
Если «SolverWeb Logger» подходит под задачу, General iT поможет установить модуль, настроить его и проверить результат на проекте.