Drupal → Вывести отладочное сообщение Krumo в watchdog

22.06.2015

Способ больше не работает, так как сообщения в логе теперь проходят через функцию filter_xss_admin(), которая вырезает стили и скрипты. Пользуйтесь DrupalHelper::debug().

Пример вывода в watchdog информации о переменной $variable:

простой способ:

has_krumo();
watchdog('debug', 'message label => ' . krumo_ob($variable), NULL, WATCHDOG_DEBUG);

Результат:

Ограничение — за один бутстрап можно добавить только одну запись в watchdog, потому что в последующих не подхватятся стили и скрипты.

сложный способ:

function debug_krumo($data, $label = NULL) {
  static $krumo_header;
  has_krumo();

  $message = krumo_ob($data);

  if ($krumo_header === NULL) {
    if (preg_match('/<style type="text\/css">.*<\/script>/sU', $message, $matches)) {
      $krumo_header = $matches[0];
    }
  }
  else {
    $message .= $krumo_header;
  }

  if ($label) {
    $message = $label . ' => ' . $message;
  }
  watchdog('debug', $message, NULL, WATCHDOG_DEBUG);
}

debug_krumo($variable, 'message label');

ограничения отсутствуют.

Функция доступна в моём модуле Drupal Helpers под именем DrupalHelper::debug() или коротким алиасом dwm().

Похожие записи

Комментарии

Есть еще https://www.drupal.org/project/object_log. В целом тоже самое, но иногда удобнее в том плане, что есть возможность просматривать на одной странице сразу две переменные

Добавить комментарий