Логирование ошибок
Все ошибки возникающие в процессе работы приложения фиксируются в лог-файлах приложения в директории:
/files/logs/
Лог-файлы приложения которые можно найти в данной директории следующие:
- bills.log - ошибки возникающие в процессе активации платных услуг и приема платежей
- cron.log - лог фиксирующий работу процессов cron-менеджера
- errors.log - основной файл ошибок приложения
- extensions.log - файл ошибок дополнений
- js.log - файл javascript ошибок приложения и дополнений
- update.log - лог фиксирующий выполненные действия в процессе установки обновления приложения
Также данный список может дополняться в зависимости от приложения и установленных в нем модулей.
Фиксировать ошибки в процессе работы приложения можно посредством вызова следующей функции:
bff::log('Текст ошибки');
bff::log('Информационный текст', Logger::INFO);
bff::log(['Сообщение #1', 'Сообщение #2'], Logger::WARNING);
Сообщения зафиксированные таким образом будут иметь следующий вид в файле errors.log:
[2019-03-22 11:18:51] core.ERROR: Текст ошибки
[2019-03-22 11:18:51] core.INFO: Информационный текст
[2019-03-22 11:18:51] core.WARNING: Array
(
[0] => Сообщение #1
[1] => Сообщение #2
)
Вместе с сообщением можно передать и массив с дополнительной информацией (контекстом) для дальнейшего изучения:
bff::log('Текст ошибки', ['extra'=>1]);
[2019-03-22 11:18:51] core.ERROR: Текст сообщения {"extra":1}
При необходимости можно изменить файл в котором фиксируется ошибка:
bff::log('Текст ошибки', 'custom.log');
// или же с указанием типа сообщения
bff::log('Текст ошибки', Logger::DEBUG, 'custom.log');
В этом случае будет создан файл /files/logs/custom.log в котором и будет сохранен текст ошибки. Это может понадобится в случае тестирования отдельной функции приложения.
Для реализации механизма логирования используется библиотека Monolog, которая кроме записи в файлы умеет также работать и с другими типами хранилищ.
Дополнения
Фиксировать ошибки в процессе своей работы могут также и дополнения приложения, для этого вызовите следующую функцию:
$this->log('Текст ошибки дополнения');
$this->log('Текст предупреждения', Logger::WARNING);
Сообщение зафиксированные таким образом будут иметь следующий вид в файле extensions.log:
[2019-03-22 11:18:51] plugin.example.ERROR: Текст ошибки дополнения
[2019-08-25 13:33:12] plugin.example.WARNING: Текст предупреждения
Также можно передать массив с дополнительной информацией (контекстом) для дальнейшего изучения:
$this->log('Текст ошибки', ['status'=>1, 'data'=>$data]);
$this->log('Текст ошибки', Logger::WARNING, ['data'=>$data]);
Дополнительно вы можете увидеть список ошибок дополнения в админ-панели в его настройках в разделе "Разработчику / Логи", доступен который в режиме разработчика.
Состояние системы
Ошибки могут также возникать в процессе проверки состояния системы и фиксироваться в разделе "Настройки сайта / Состояние системы".
Подробнее о том каким образом ими можно управлять читайте в данном разделе.