xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Способ больше не работает, так как сообщения в логе теперь проходят через функцию 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().

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

Комментарии RSS

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

kprint_r($var1, TRUE) . kprint_r($var2, TRUE)

:)

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании