Controlar los errores en Magento2 puede realizarse de muchas maneras diferentes. Veamos algunas de ellas
Modo developer de Magento
Cuando cambiemos de modo producción a developer, debemos limpiar antes todos las clases, objetos, interceptors, entidades, etc .. generados en el directorio var/
Una vez hecho esto procedemos a cambiar nuestro estado de la página a modo developer usando el comando:
1 |
php ./bin/magento deploy:mode:set developer |
Se nos mostrará el siguiente mensaje
1 |
Enabled developer mode. |
También podremos habilitar el modo developer desde el fichero .htaccess. Tendremos que buscar la siguiente línea y descomentarla:
1 |
SetEnv MAGE_MODE developer |
Notificaciones de error de Magento
Magento notifica los errores en el caso de que se produzcan pero tendremos que comprobar los logs para ver una información más detallada de estos.
Para poder leer los mensajes de error directamente en pantalla o recibirlos por email (esto es más útil en producción), iremos al directorio pub/errors/ y buscamos el fichero local.xml.sample para poder renombrarlo.
1 |
$ mv ./pub/errors/local.xml.sample ./pub/errors/local.xml |
Notificación de errores de PHP
Podemos habilitar las notificaciones de errores de PHP usando display_errors y error_reporting () editando el fichero app/bootstrap.php y descomentando la lineas:
1 2 3 4 |
nano ./app/bootstrap.php ini_set('display_errors', 1); error_reporting(E_ALL); |
Comprobación de Logs de error
Otra opción es consultar los errors en los ficheros de logs de Magento2 ubicados en la carpeta var/log/
1 2 |
tail -f ./var/log/exception.log tail -f ./var/log/system.log |
Otro directorio a tener en cuenta donde se guardan los reportes de error de la aplicación de Magento es var/report/
Chrome Dev Tools
Usar las Dev Tools para chrome (Network) para comprobar que otro tipo de errores json, ajax, templates, etc se pueden estar produciendo en nuestra aplicación.
Path Hints
Desde el gestor de Magento en Store -> Configuration -> Advanced -> Developer podremos activar en las opciones de Debug la utilidad Path Hints tanto para el frontend como el backend y así ubicar que fichero se está cargando en cada sección de nuestra página.
También podremos hacerlo desde línea de comandos
1 2 |
php ./bin/magento dev:template-hints:enable php ./bin/magento dev:template-hints:disable |
Database Logging
Si queremos tener un control de las consultas hacia la base de datos que está realizando nuestro módulo podremos activar esta característica de Magento que por defecto está desactivada.
1 2 |
php ./bin/magento dev:query-log:enable php ./bin/magento cache:flush |
Lo que hace es generar un fichero llamado db.log en la carpeta var/debug/