Tela de Erro com Mensagem do Erro

Essa dica vai para os amigos desenvolvedores. Para agilizar um pouco as tarefas quando estiverem tratando com erros no Magento.

É comum (a partir da versão 1.4.x) o sistema apresentar uma mensagem de segurança como esta:

Error log record number: 1234567890

Claro que não vou explicar tudo novamente, se você quer saber como identificar essa mensagem de erro, leia o post Error log record number – Identificando o problema.

Error log record number no Magento

Nesse post vou dar algumas dicas para exibir os erros na tela, e como configurar esta tela.

Prós e contras

Quando você joga a mensagem de erro na tela, seu sistema fica exposto, pois dessa forma está exibindo as falhas, que podem ser exploradas em ataques virtuais. Por isso, utilize essa dica somente em ambiente de testes.

Erro Magento Explodindo na Tela

Outra vantagem em ocultar a mensagem na tela e gerar um arquivo de log, é que quando um cliente encontra um erro, a falha é armazenada no diretório de erros e você fica sabendo da falha. Caso contrário, você nunca saberia que seu cliente encontrou um problema durante a navegação – saberia apenas se ele entrasse em contato.

A tela padrão de erro (error log record number) não ajuda na navegação e orientação do usuário, ficando este sem saber o que aconteceu e como proceder. Nesse caso é interessante personalizar esta página, incentivando o cliente a entrar em contato e informar o que causou o problema (tela/ação).

Ativando modo desenvolvedor

Vamos ver como fazer com que o sistema pare de gerar arquivos de log e passe a mostrar os erros no navegador. Para isso abra o arquivo index.php.

Nas versões mais antigas, bastaria retirar o sinal # da palavra:

#Mage::setIsDeveloperMode(true);

Nas versões mais recentes, foi adicionado uma condicional. Que significa que você pode configurar uma variável para ativar esse modo desenvolvedor, ou então apenas apague (comente) a condicional (if) e salve o arquivo.

if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
    Mage::setIsDeveloperMode(true);
}

Para definir um valor à essa variável, abra o arquivo .htaccess do seu servidor e adicione o seguinte:

SetEnv MAGE_IS_DEVELOPER_MODE "127.0.0.1"

Lembrando que isso deve ser feito apenas em seu ambiente de testes. E pode ser informado qualquer valor à variável, neste exemplo usei “127.0.0.1“.

Monitorando erros por email

Muita gente não sabe, mas sempre que ocorre um erro no sistema, você pode ser alertado por email. Então muito cuidado ao usar essa opção, pois seu email pode ser inundado por mensagens de erros.

Na sua instalação do Magento, veja o arquivo:

erros > local.xml.sample
Até a versão 1.3.x seria a pasta reports/config.xml

Faça uma cópia deste arquivo e renomeie para local.xml, com as seguintes configurações:

    default
    
        email
        Ocorreu um erro na loja
        seu_email@seu_dominio.com.br
        leave
    

Agora, sempre que ocorrer um erro, o sistema vai enviar automaticamente um email para o endereço informado no arquivo. E uma tela com formulário de contato será exibido ao usuário, para que ele possa fornecer mais informações sobre a falha.

Informe o Erro

Ao preencher e enviar o formulário, você recebe um segundo email sobre a falha. Que pode ajudar você a simular o problema em um ambiente de testes/desenvolvimento.

Espero que estas dicas ajudem a tornar o seu trabalho mais produtivo. Leia também o post Módulos Incompatíveis, onde eu cito as maiores causas de problemas no Magento.

Sucesso!