¿Cómo habilito el modo desarrollador / depuración?

36

Instalación de drupal 8 core (utilizando perfil estándar). cada vez que recibo una excepción / error, aparece una página en blanco con "El sitio web ha encontrado un error. Vuelva a intentarlo más tarde". (como la imagen de abajo) texto y sin detalles / seguimiento sobre el error

ingrese la descripción de la imagen aquí

vijaycs85
fuente

Respuestas:

51

En un sitio de desarrollo, sugeriría no comentar las siguientes líneas en el settings.phparchivo. emacs sites/default/settings.php

if (file_exists(__DIR__ . '/settings.local.php')) {
  include __DIR__ . '/settings.local.php';
}

y luego copiando el archivo example.settings.local.phpde /sitescarpeta a /sites/defaultcarpeta y renómbrelosettings.local.php

cp sites/example.settings.local.php sites/default/settings.local.php

Además de agregar la siguiente configuración

$config['system.logging']['error_level'] = 'verbose';

También agrega algunas otras configuraciones que lo ayudarán a depurar y facilitar el desarrollo. Si no quieres ninguno de ellos en particular, siempre puedes comentarlos.

Nota: Si cree que agregar una file_existsllamada a cada página ralentizará el sitio, siempre puede eliminarlo en el código de producción.

Gokul NK
fuente
Si no tiene un archivo de ejemplo, también puede crear un archivo que contenga<?php $config[...;
Danielle Madeley
1
Como se menciona a continuación, el módulo Devel puede facilitar las cosas para Drupal 8. Verificó que $ config ['system.logging'] ['error_level'] = 'verbose'; la configuración parece funcionar.
Darrell Ulm
He creado un contenedor acoplable que viene con la configuración necesaria para depurar y no almacenar en caché; espero que sea útil: hub.docker.com/r/feikede/drupal-dev
Rainer Feike
8

Una opción fácil, si tiene acceso a la Consola Drupal, es habilitar el entorno de desarrollo / depuración mediante drupal site:mode dev; cuando esté listo para volver a cambiarlo a producción, úselo drupal site:mode prod.

4life
fuente
1
Buen truco con la consola Drupal
ognockocaten
7

Aquí está la variable con los diferentes valores:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
Flo Develop
fuente
2
Gracias por agregar los posibles valores.
bloquea el
Sí, gracias por agregar los posibles valores, que fueron sorprendentemente difíciles de encontrar.
Arnoldbird
4

Para obtener mensajes de error básicos en Drupal 8, no necesita tocar ningún código. Solo ve a:

/ admin / config / development / logging

y establezca "Mensajes de error para mostrar" en un nivel apropiado.

También puede ver sus errores recientes a través de la interfaz de administración:

/ admin / reports / dblog

Dicho esto, otras respuestas sobre los archivos de configuración son relevantes: solo debe hacer que los errores sean visibles en su sitio de desarrollo, no en la producción.

Los objetos / claves $ config sobrescritos en settings.php no se escribirán en el directorio de sincronización al exportar, por lo que siempre que su settings.php esté en .gitignore, puede continuar usando el sistema de configuración de manera segura para sincronizar entre clones del mismo sitio .

William Turrell
fuente
0

También puede instalar los módulos Devel y Devel kint. Esto te permitirá depurar usando kint(xyz).

rshah
fuente
0

Si solo tiene acceso a Drush (sin consola Drupal) y está trabajando en un servidor remoto, puede configurar la configuración para que muestre todos los errores:

drush MYSITE.MYENV config-set system.logging error_level all -y

Esto es útil si está obteniendo un WSOD en un servidor remoto y no puede solucionar el problema sin más información.

Patrick Kenny
fuente
Para la situación descrita, también recomiendo drush sqlcseguido SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1para mostrar la última entrada en el dblog.
Gogowitsch
0

Página en blanco con "El sitio web ha encontrado un error. Vuelva a intentarlo más tarde". No te llevará a ninguna parte. Para obtener más información de su sitio Drupal 8, puede habilitar las siguientes configuraciones.

$config['system.logging']['error_level'] = 'verbose';

Para el desarrollo local de Drupal 8, también debe habilitar el informe de errores, los errores de visualización y el error de inicio de visualización para ayudarlo a depurar y corregir los principales errores de tiempo de ejecución.

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Puede encontrar más información sobre la depuración TWIG y cómo habilitar la depuración con la Consola Drupal en la publicación de blog a continuación.

https://www.drupixels.com/blog/enable-debug-mode-and-error-reporting-local-development-drupal-8

Gulab Bisht
fuente