controlErrorLog - контроль журнала ошибок

Решение для контроля за журналом ошибок. Включает в себя иконку в панели меню и уведомление по электронной почте.

Как видно из картинки, справа, рядом с именем администратора, появилась иконка. Если журнал содержит ошибки, то отображается восклицательный знак в желтом треугольнике. Если ошибок нет, то отображается галочка в белом кружке.

Чтобы открыть журнал ошибок, кликаем на иконке. Если журнал слишком большой, то выводится только последние 15 строчек и предлагается скачать его полную версию. Количество последних строчек можно изменить в настройках.

Индикатор ошибок видят только администраторы с "sudo" и пользователи с правами "error_log_view". Это для того, чтобы обычные редакторы не пужались. Добавлю еще, что для очистки журнала обычным пользователям нужны права "error_log_erase".

Если включен мониторинг журнала на сайте и указан email, то каждый раз, когда пользователь загружает страницу сайта, controlErrorLog проверяет журнал ошибок на предмет появления изменений. Если они были, то на указанный email высылается сообщение об ошибке. Сообщается не о самих ошибках, а о факте появления ошибок, т.е. проверяется изменение размера файла журнала.

Асинхронная проверка изменений

На продакшн сайте предпочтительней использовать cron скрипт core/components/controlerrorlog/cron/checkerrorlog.php. Этот вариант позволит избежать тяжелой операции отправки уведомления при проверке изменений лога. Таким образом, пользователь не будет ощущать никаких задержек.

Копирование журнала ошибок

Иногда возникает потребность сохранить ошибки из журнала для последующего анализа. Для этого предусмотрена кнопка Сделать копию, которая создаёт копию журнала в файл error_{timestamp}.log, где timestamp - это время создания копии.

Системные параметры

Ключ По-умолчанию Описание
controlerrorlog.allow_copy_deletion true Переключает режим удаления (true) или очищения (false) копии журнала.
controlerrorlog.control_frontend true Включает уведомление на электронную почту об ошибках.
controlerrorlog.admin_email Электронная почта пользователя для уведомления об ошибках.
controlerrorlog.last_lines 15 Количество последних строчек журнала, если он слишком большой. По-умолчанию, 15.
controlerrorlog.auto_refresh true Включает автоматическую проверку состояния журнала ошибок с указанной частотой.
controlerrorlog.refresh_freq 60 Частота обновления журнала, если включена опция auto_refresh.

Ссылки

  • Проект на Github.
  • Статья Боба Рея (на английском языке).
Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.