Система логирования в MODX Revolution
Знакомясь с любой системой управления сайтом, в первую я стараюсь понять, что делать, если что-то идет не так. И конечно в данном случае большую роль играют средства самой системы управления, которые либо помогают понять, в чем проблема, либо совершенно не информативны. Поговорим о MODX Revolution.
Система логирования MODX Revolution мне нравится, так как чем-то мне напоминает логирование в Linux и некоторых других open-source проектах. То есть позволяет выводить информацию в разные источники и позволяет группировать информацию по уровню важности, знакомыми всем системным администраторам log levels, что для меня очень важно. При этом система логирования задействуется уже на этапе установки, что упрощает решение проблем, происходящих в момент установки MODX, а они бывают.
Управление системой логирования производится через системные настройки log_target и log_level, которые расположены в блоке System and Server системных настроек MODX Revolution. На выводе в разные источники останавливаться не буду, скажу лишь, что источник задается системной настройкой log_target и по умолчанию логирование производится в файл (опция FILE). Сам файл с логами будет находиться по адресу: /core/cache/logs/error.log. Он же будет показываться, если выбрать пункт Error log (Журнал системы управления) в меню в админке.
На уровнях остановлюсь поподробнее, всего их 5: 0 (FATAL), 1 (ERROR), 2 (WARN), 3 (INFO), 4 (DEBUG). Использование данной группировки позволяет нам не только понимать уровень важности возникшей проблемы, но и задавать уровень, от которого информация будет в этот лог попадать (логироваться). Логика работы очень похожа на syslog. Например, если мы зададим уровень 1 (ERROR), то логироваться будут ошибки (1) и фатальные ошибки (0). Если же мы зададим 3 (INFO), то логироваться будут уровни 3 информация,2 предупреждения, 1 ошибки, 0 фатальные ошибки.
Кстати, как и любой лог в *nix системах за данным логом можно так же следить в режиме реального времени через tail:
tail -f /полный_путь_к_MODX/core/cache/logs/error.log
А еще мы можем сами добавлять информацию в лог через вызов метода MODX:
$modx->log(xPDO::LOG_LEVEL_ERROR,'Сообщение которое хотим отправить в лог');
, где LOG_LEVEL_ERROR означает уровень 1 (ERROR) и соответствует уровням логирования (FATAL, ERROR, WARN, INFO, DEBUG). Заменив последнее слово мы изменим и лог уровень, которому будет соответствовать важность сгенерированного нами сообщения.
Для удобства просматривания и очищения рекомендую пользоваться расширением controlErrorLog.