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