Como habilito o modo desenvolvedor / depuração?

36

Instalando o drupal 8 core (usando o perfil padrão). sempre que recebo exceção / erro, recebo uma página em branco com "O site encontrou um erro. Tente novamente mais tarde". (como imagem abaixo) texto e nenhum detalhe / rastreamento sobre erro.

insira a descrição da imagem aqui

vijaycs85
fonte

Respostas:

51

Em um site de desenvolvimento, sugiro descomentar as seguintes linhas no settings.phparquivo. emacs sites/default/settings.php

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

e copie o arquivo example.settings.local.phpde /sitespasta para /sites/defaultpasta e renomeie-o parasettings.local.php

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

Além de adicionar a seguinte configuração

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

ele também adiciona algumas outras configurações que ajudarão você a depurar e facilitar o desenvolvimento. Se você não deseja nenhum deles em particular, sempre pode comentar.

Nota: Se você acha que a adição de uma file_existschamada a cada página diminui a velocidade do site, você sempre pode removê-la no código de produção.

Gokul NK
fonte
Se você não possui um arquivo de exemplo, também pode criar um arquivo que contenha<?php $config[...;
Danielle Madeley
1
Conforme mencionado abaixo, o módulo Devel pode facilitar as coisas para o Drupal 8. Verificou-se que $ config ['system.logging'] ['error_level'] = 'verbose'; configurações parece funcionar.
Darrell Ulm
Eu criei um recipiente janela de encaixe que vem com as definições necessárias para depuração e não-cache - esperança é útil: hub.docker.com/r/feikede/drupal-dev
Rainer Feike
8

Uma opção fácil, se você tiver acesso ao Drupal Console, é ativar o ambiente de desenvolvimento / depuração usando drupal site:mode dev; Quando estiver pronto para voltar à produção, use drupal site:mode prod.

4life
fonte
1
Bom truque com o Drupal Console
ognockocaten 2/17/17
7

Aqui está a variável com os diferentes valores:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
Flo Develop
fonte
2
Obrigado por adicionar os valores possíveis.
plocks
Sim, obrigado por adicionar os possíveis valores, que foram surpreendentemente difíceis de encontrar.
arnoldbird
4

Para receber mensagens de erro básicas no Drupal 8, você não precisa tocar em nenhum código. Basta ir para:

/ admin / config / development / log

e defina "Mensagens de erro a serem exibidas" para um nível apropriado.

Você também pode visualizar seus erros recentes através da interface do administrador:

/ admin / reports / dblog

Dito isto, outras respostas sobre os arquivos de configurações são relevantes - você só deve tornar os erros visíveis no site de desenvolvimento, não na produção.

Os objetos / chaves $ config substituídos em settings.php não serão gravados no diretório sync durante a exportação, portanto, desde que o settings.php esteja em .gitignore, você poderá continuar usando o sistema de configuração com segurança para sincronizar entre clones do mesmo site .

William Turrell
fonte
0

Você também pode instalar os módulos kint Devel e Devel. Isso permitirá que você depure usando kint(xyz).

rshah
fonte
0

Se você tiver acesso apenas ao Drush (sem console do Drupal) e estiver trabalhando em um servidor remoto, poderá definir a configuração para mostrar todos os erros:

drush MYSITE.MYENV conjunto de configurações system.logging error_level all -y

Isso é útil se você estiver obtendo um WSOD em um servidor remoto e não puder solucionar problemas sem mais informações.

Patrick Kenny
fonte
Para a situação descrita, eu também recomendo, drush sqlcseguido de SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1para mostrar a última entrada no dblog.
Gogowitsch 9/08/19
0

Página em branco com "O site encontrou um erro. Tente novamente mais tarde." não o levará a lugar algum. Para obter mais informações do seu site Drupal 8, você pode ativar as seguintes configurações.

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

Para o desenvolvimento local do Drupal 8, você também deve habilitar o relatório de erros, exibir erros e exibir erros de inicialização para ajudá-lo a depurar e corrigir erros graves de tempo de execução.

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

Você pode encontrar mais informações sobre a depuração do TWIG e ativar a depuração com o Drupal Console na postagem do blog abaixo.

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

Gulab Bisht
fonte