Для получения отладочных сообщений в журнале отчетов MODX следует использовать $modx->log(). Объявление функции имеет вид:
public function log($level, $msg, $target = '', $def = '', $file = '', $line = '')
Первый параметр указывает уровень/тип сообщения — ошибка, предупреждение, информационное сообщение или отладочная информация. Для каждого уровня константы:
Второй параметр содержит информацию, которая будет записана в журнал ошибок.
Обычно ограничиваются указанием только первых двух параметров
В него передается "назначение", куда будет выводится информация. Возможные значения:
В нём можно передать название скрипта или метода класса, в котором вызван метод log(). Особенно это удобно, когда таких вызовов несколько.
Они отвечают за вывод информации о скрипте и номере строки. Если их не указать, то они определятся автоматически как:
Есть две системные настройки, влияющие на работу метода log() - это log_target и log_level. По умолчанию они имеют значение FILE и 1, соответственно.
Первая (log_target) указывает куда выводить информацию (см. "третий параметр").
Вторая (log_level) указывает текущий уровень логирования MODX. Возможные значения:
Эта настройка ограничивает логирование сообщений указанным уровнем. Таким образом log() с уровнем выше, чем в настройке, будет отклонён. Например, если в настройке указано log_level = 1 (т.е. логируются только ошибки), то все вызовы метода log() с уровнем WARN, INFO и DEBUG в журнал записаны не будут. Как правило, при отладке на эти уровни не обращают внимание и используют текущий уровень логирования для ошибок.
$modx->log(MODX_LOG_LEVEL_ERROR, 'Сообщение');
// или так
$modx->log(modX::LOG_LEVEL_ERROR, 'Сообщение');
// или ещё короче
$modx->log(1, 'Сообщение');
В режиме разработки полезно работать с уровнем DEBUG. Это полезно тем, что даже если вы забудете потом удалить этот вызов, то он не будет забивать журнал ошибок, так как на продакшн сайте уровень логирования всегда выставляется в 1 (записывать в журнал только ошибки).
Если нужно вывести только отладочную информацию на странице без контента, то указываем вывод в HTML и добавляем die() или exit(), например:
$modx->log(MODX_LOG_LEVEL_ERROR, print_r($modx->config, 1),'HTML'); die();