Set Drupal to show all errors when developing your module.
Some errors are only reported when all PHP error reporting is switched on. Without the error reporting on, you get the dreaded White Screen of Death.
Check for errors behind the scenes
As an alternative between showing no errors and showing all errors, you may wish to monitor the errors being generated by your site by running
tail -f /var/log/apache2/error.log
on your server.
Change settings in your dev site
You can show all errors by adding a few lines to your local testing site’s settings.php:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
In addition, navigate to Administration→ Configuration→ Development → logging and errors and select «All messages». (This sets $conf['error_level'] = 2;
.)
You may need to add the following to settings.php
$config['system.logging']['error_level'] = 'verbose';
Switch on strict PHP error reporting
Or you can go through your development site’s php.ini file, in the php folder, and switch all error reporting on. To do this, check through your php.ini file and set error_reporting
to E_ALL
. The documentation there is very thorough, and you may find a different setting that’s better suited to your needs. Warning: as the PHP documentation states, this setting is only for development sites, not for production sites.
Drupal надстраивает собственные разрешения на вывод ошибок, потому если вам необходим вывод ошибок на этапе разработки, то важно знать как разрешить их показ/протоколирование.
Чтобы не разбираться в конфигурации конкретно вашего веб-сервера, воспользуемся командами ini_set и error_reporting для настройки вывода PHP ошибок уже во время исполнения скрипта.
Инструкции нужно добавить в файл конфигурации вашего Drupal сайта (по умолчанию это — /sites/default/settings.php).
error_reporting(E_ALL); ini_set(‘display_errors’, TRUE); ini_set(‘display_startup_errors’, TRUE); |
Это не гарантирует вывод ошибок, т.к. Drupal может иметь собственные настройки. Их можно изменить в админ панели — вот тут /admin/config/development/logging или жестко зафиксировав в конфигурации:
$conf[‘error_level’] = 2; |
Это будет соответствовать выбору ‘All messages’ в админке.
Drupal 7
Написать комментарий
Данная запись опубликована в 24.01.2020 13:45 и размещена в рубрике drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
node_save в hook_node_insert
Апрель 13, 2021 г.
Рассмотрим технику того, как выполнить node_save во время hook_node_insert.
Проблема в том, что во время данного хука мы еще находимся в транзакции и выполнить сохранение ноды прямо тут коде функции — не получится. Т.е. следующий код работать не …
Читать
- Главная
- Форумы
- Техподдержка Drupal
- Решение проблем
Ошибки и предупреждения видны только Админу (Drupal 7)?
Главные вкладки
- Просмотр(активная вкладка)
- Реакции
HESHES
5 января 2014 в 5:12
На странице admin/config/development/logging есть опция «Отключить отображение всех ошибок на сайте» (рекомендуется не выводить ошибки на монитор на рабочем сайте).
Но как-то можно включить отображение ошибок только для Админа?
Если роль админ, то показывать ошибки. А по-умолчанию — не показывать — ?
- Drupal7
- Есть вопрос
- Решение проблем
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
drupby
5 января 2014 в 5:41
«OH Labs» wrote:
Но как-то можно включить отображение ошибок только для Админа?
ну так гугл по запросу «drupal error messages only for admin» дает кучу результатов с решением
Murdok
5 января 2014 в 9:08
Они вроде только для админа и должны отображаться. Но на всякий проверьте сайт под анонимом, и под обычным пользователем. Мало ли что там у вас.
VasyOK
5 января 2014 в 13:02
drupby
5 января 2014 в 13:24
HESHES
7 января 2014 в 4:44
Ничего не прокатывает.
Если скрывать через админку, то ДЛЯ ВСЕХ скрываются варинги/нотисы.
Disable_messages — отключает зеленые, желтые или красные сообщения. В красные входят нотисы и варинги (их и надо скрыть от всех, кроме админа) + служебные.
НО если убрать красные у юзеров, то скрываются и служебные вспомогательные сообщения, типо «Вы не заполнили поле.. и т.п.»
Ну и темизация также работает.. по цвету, вроде как.
Нужно отделить как-то ИЗ КРАСНЫХ МЕССАГ — только PHP-варинги/нотисы, и их то не показывать, не отключая при этом, другие полезные «Красные» сообщения..
univerico
25 января 2018 в 19:30
Тоже это пытаюсь решить
Нужно все же уточнить, какие есть полезные сообщения? У моделя немного своя теримнология.
В настройках модуля на странице /admin/config/development/disable-messages написано
что можно настроить еще и правах на странице /admin/people/permissions
Там три типа
— View status messages
-View warning messages
-View error messages
и четвертый вариант Exclude from message filtering
При включении показывать warnings, то что идет как обычные Warnings не проходит, а проходит при включении View error messages. Полезные красные сообщения, которые Вы имеете ввиду это status messages, warning messages или error messages?
При проведении теста именно на предмет сообщений о незаполнении полей у меня получилось:
-при выключении всех 4 вариантов, если не заполнить поле, то оно просто выделяется красным, и сообщения ни для пользователя текстове об этом, ни другие сообщения для админа не выводятся.
-при включении только View warning messages такакая же ситуация, но видимо еще и будут выводиться какие-то другие сообщения Warnings (которых у меня просто не было в данный момент на сайте).
Если у вас вдруг, чтобы вы не делали в Drupal не отображаются ошибки (errors) или предупреждения (warnings) PHP, то возможно вам следует заглянуть на следующую страничку конфигурирования системы — http://example-drupal-site.com/admin/config/development/logging. Возможно там просто нужно будет правильно выставить переключатель, — смотрите скриншот, который показан ниже:
Описанные опции можно найти по пути Главная » Администрирование » Конфигурация » Разработка » Logging and errors.
Материал актуален применительно к Drupal 7.
Опубликовано 7-01-2014 в 11:52
Have you seen an error message in a Drupal site like this?
When you are building or modifying a Drupal site, the error above can sometimes appear and catch us in unexpected situations, but there is nothing much you can do. “Try again later” is not going to help. What will you do?
There is not much you can do about it, because there is not enough information to go further. By default, Drupal is configured not to display error messages. To find out what caused the errors, the error message display options require to be turned on first.
In this tutorial, you’ll learn how to turn on error display to help you debug.
WARNING: It’s important not to display error messages on a production site. The error messages could display sensitive information such as paths or server level user accounts.
To turn on the “Error Messages to Display”, go to the Administration menu, then go into Configuration > Development > Logging and errors (/admin/config/development/logging).
You will find the following configuration. There are 4 options available, and the default setting is “None”.
The 4 options are:
None |
None is the default. Drupal will not display error messages. That’s why there is only very limited error information displayed. |
Errors and warnings |
Display both errors and warnings |
All messages |
Display all messages |
All messages, with backtrace information |
Display all messages, including a backtrace of all the functions that the system has gone through before the error |
Turning on the other options, Drupal will display more error messages. The following is another example of error messages after turning on “All messages, with backtrace information”:
When more information is provided, it’s easier to isolate, test and identify what really caused the errors. Compared with the first error screen above, this one makes much more sense to start with. We are not going into the individual errors here. This is probably the first step to handle unknown error messages. Even though sometimes we need help from other people, this more detailed information is still necessary for them to follow up.
Recent Log Messages
In addition to the error screen, there is an area “Recent Log Messages” we can look into if the site is still working.
To go into this area, go to Administration Menu, go to Reports > Recent log messages (../admin/reports/dblog),
A list of recent log messages can be found here. Following is an example:
By clicking on the individual log, more details of that error message will be displayed. Below is an example.
Summary
Next time when we come across a run-time error, we can analyze what changes have been made, see if the errors are repeating, and see if things can be reversed.
In addition, turning on these error message displays to provide us more information, particularly a backtrace of the functions Drupal was executing, and collecting other log messages are additional steps we can take.
Even though we might need assistance from other people, this information is still important to them.
We hope these simple steps will be helpful in problem-solving, which sometimes can be very time-consuming.